[ Environment ]
- Raspberry Pi B Type
- RPI CAMERA BOARD
[ Method ]
- 기본 계정인 pi 로 로그인해서 사용해도 되지만, 난 root 로 로그인해서 테스트 함
- apt-get update
- apt-get upgrade
- raspi-config 실행 후 camera 를 활성화 한다
- reboot
- Still Capture : raspistill -v -o still01.jpg
- Video Capture : raspivid -t 30000 -o video01.h264 ( 대충 봐도 충분히 30 fps 나온다, CPU 점유율은 7.5% 정도, 훌륭하다 )
2013년 11월 13일 수요일
2013년 11월 12일 화요일
Raspberry Pi - Media Player
[ Environment ]
- Raspberry Pi B Type
- 배포본 : Raspbian GNU/Linux 7
[ Method ]
- XBMC 라는 Media Center 가 따로 있기는 하지만, 셋탑박스 만들때나 필요하겠다
- vsftp 설치 해서, 이웃집토토로를 SD Card 에 옮겨 두었다
- 기본적으로 위의 배포본 설치 시, omxplayer 가 설치 되어 있다
- sudo omxplayer 이웃집토토로.avi ( 이런식으로 걍 실행 한다, omxplayer 가 Overlay 로 뿌리고 있는거 같은데, CPU 점유율은 약 11~12% 정도, Mem 은 5~6% , 훌륭하다. 네이버 미디어 플레이어로 내 노트북에서 실행할 때, 약 7 ~ 10 % 인데... 완전 맘에 든다 )
- Raspberry Pi B Type
- 배포본 : Raspbian GNU/Linux 7
[ Method ]
- XBMC 라는 Media Center 가 따로 있기는 하지만, 셋탑박스 만들때나 필요하겠다
- vsftp 설치 해서, 이웃집토토로를 SD Card 에 옮겨 두었다
- 기본적으로 위의 배포본 설치 시, omxplayer 가 설치 되어 있다
- sudo omxplayer 이웃집토토로.avi ( 이런식으로 걍 실행 한다, omxplayer 가 Overlay 로 뿌리고 있는거 같은데, CPU 점유율은 약 11~12% 정도, Mem 은 5~6% , 훌륭하다. 네이버 미디어 플레이어로 내 노트북에서 실행할 때, 약 7 ~ 10 % 인데... 완전 맘에 든다 )
2013년 11월 11일 월요일
Raspberry Pi 구동 준비 사항 ( Preparing )
[ Environment ]
- Windows7 64 bit
- Raspberry Pi B Type
- [Transcend] MicroSDHC, Class4 [8GB]
- SD Reader : PMS-R04
- [멜로디] 멜로디 HDMI to DVI 듀얼 골드코팅 케이블 1.5M
- microSD Adapter H (수평타입 SD어댑터)
- http://www.raspberrypi.org/downloads 에서 Formatting Tool Link 를 따라 가서 다운로드 한다
- http://www.raspberrypi.org/downloads 에서 NOOBS_v1_3_2.zip 을 다운로드
[ Method ]
- Windows 에 다운로드한 Tool 을 설치 한다
- 설치 후 실행한 다음, Option Button Click
- 2번째 Option 중 Format size adjustment 을 "ON" 으로 선택
- Windows7 64 bit
- Raspberry Pi B Type
- [Transcend] MicroSDHC, Class4 [8GB]
- SD Reader : PMS-R04
- [멜로디] 멜로디 HDMI to DVI 듀얼 골드코팅 케이블 1.5M
- microSD Adapter H (수평타입 SD어댑터)
- http://www.raspberrypi.org/downloads 에서 Formatting Tool Link 를 따라 가서 다운로드 한다
- http://www.raspberrypi.org/downloads 에서 NOOBS_v1_3_2.zip 을 다운로드
[ Method ]
- Windows 에 다운로드한 Tool 을 설치 한다
- 설치 후 실행한 다음, Option Button Click
- 2번째 Option 중 Format size adjustment 을 "ON" 으로 선택
- Format 이 완료 되면 아래 그림과 같은 확인 메세지 박스가 나타난다
- Format 이 완료 되면, 다운로드한 NOOBS_v1_3_2.zip 의 압축을 풀어 SD Card Drive 로 복사 한다
- 이제 SD Card 를 Raspberry Pi 에 넣고, Power 를 켜면, 최초 설치 가 시작 된다
Raspberry Pi Default username / passoword
[ Environment ]
- Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l
[ Method ]
- 최소 설치 시 암호를 변경하지 않았다면 아래와 같다
- username : pi
- password : raspberry
- Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l
[ Method ]
- 최소 설치 시 암호를 변경하지 않았다면 아래와 같다
- username : pi
- password : raspberry
2013년 10월 21일 월요일
Oracle LPAD 활용
[ 환경 ]
- Oracle 11g function
[ 목적 ]
- Primary Key 형태 : ABC-20131012-001
- 위의 Key 에 대한 Sequence 한 Max 값을 구하는 Oracle Function 코드 작성, 특히 마지막 3자리에서 최대값에 1을 더한 값을 구해야 한다, Number Type 이면 쉽게 구할 수 있지만, Char 가 섞여 있어, 아래와 같이 조금 복잡해 졌다
[ Function 코드 ]
- Primary Key 에 대한 최대값 구하기
- Substr 으로 마지막 3자리 자르기
- Number Type 으로 변경
- LPAD 으로 1을 더하고. 3번째 자리 기준으로 왼쪽에 0을 채운다
- 마지막으로 원래 Format 으로 재배치 한다
CREATE OR REPLACE FUNCTION TBABLE_USER.F_MaxNo (mType VARCHAR2, mDate VARCHAR2) RETURN VARCHAR2 AS
mNextNo VARCHAR2(16);
BEGIN
SELECT mType || '-' || mDate || '-' || LPAD(NVL(SUBSTR(MAX(NO), -3), 0) + 1, 3, '0') INTO mNextNo FROM TB_TABLE
WHERE NO LIKE mType || '%';
RETURN mNextNo;
END;
/
[ 참고 ]
-- LPAD Sample
SELECT LPAD('Page 1',15,'*.') "LPAD example"
FROM DUAL;
LPAD example
---------------
*.*.*.*.*Page 1
- Oracle 11g function
[ 목적 ]
- Primary Key 형태 : ABC-20131012-001
- 위의 Key 에 대한 Sequence 한 Max 값을 구하는 Oracle Function 코드 작성, 특히 마지막 3자리에서 최대값에 1을 더한 값을 구해야 한다, Number Type 이면 쉽게 구할 수 있지만, Char 가 섞여 있어, 아래와 같이 조금 복잡해 졌다
[ Function 코드 ]
- Primary Key 에 대한 최대값 구하기
- Substr 으로 마지막 3자리 자르기
- Number Type 으로 변경
- LPAD 으로 1을 더하고. 3번째 자리 기준으로 왼쪽에 0을 채운다
- 마지막으로 원래 Format 으로 재배치 한다
CREATE OR REPLACE FUNCTION TBABLE_USER.F_MaxNo (mType VARCHAR2, mDate VARCHAR2) RETURN VARCHAR2 AS
mNextNo VARCHAR2(16);
BEGIN
SELECT mType || '-' || mDate || '-' || LPAD(NVL(SUBSTR(MAX(NO), -3), 0) + 1, 3, '0') INTO mNextNo FROM TB_TABLE
WHERE NO LIKE mType || '%';
RETURN mNextNo;
END;
/
[ 참고 ]
-- LPAD Sample
SELECT LPAD('Page 1',15,'*.') "LPAD example"
FROM DUAL;
LPAD example
---------------
*.*.*.*.*Page 1
2013년 10월 4일 금요일
confirm javascript function call form aspx.cs
[ 환경 ]
asp.net
iis
[ 목적 ]
asp.net 의 aspx.cs 의 C# code 에서 javascript ( confirm 에 대한 ) 을 호출하여, 사용자가 선택 한 상황(yes or no)에 따라 Process 를 분기 한다
[ 방법 ]
아래 방법을 보면 알겠지만, 숨김 버튼 한개를 만들고, 이벤트를 걸어서 처리 한다
1. aspx.cs code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "test", "test();", true);
}
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
myProcess();
}
2. aspx code
<asp:LinkButton ID="LinkButton3" runat="server" Text="clickMeToo" OnClick="LinkButton3_Click" style='display:none;'></asp:LinkButton>
<script type="text/javascript">
function BookingCancelConfirm() {
var ans = confirm('are you ok?');
if (ans) {
<%= Page.GetPostBackEventReference(LinkButton3) %>
return true;
}
else {
self.location = '/default.aspx';
return false;
}
}
</script>
asp.net
iis
[ 목적 ]
asp.net 의 aspx.cs 의 C# code 에서 javascript ( confirm 에 대한 ) 을 호출하여, 사용자가 선택 한 상황(yes or no)에 따라 Process 를 분기 한다
[ 방법 ]
아래 방법을 보면 알겠지만, 숨김 버튼 한개를 만들고, 이벤트를 걸어서 처리 한다
1. aspx.cs code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "test", "test();", true);
}
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
myProcess();
}
2. aspx code
<asp:LinkButton ID="LinkButton3" runat="server" Text="clickMeToo" OnClick="LinkButton3_Click" style='display:none;'></asp:LinkButton>
<script type="text/javascript">
function BookingCancelConfirm() {
var ans = confirm('are you ok?');
if (ans) {
<%= Page.GetPostBackEventReference(LinkButton3) %>
return true;
}
else {
self.location = '/default.aspx';
return false;
}
}
</script>
2013년 9월 23일 월요일
Oracle 에서 Sequence 생성과 사용 ( Dual )
Unique Key 로 보통 Auto Increment 로 설정하여 사용하여도 되나, 아래와 같이 Sequence 를 생성하여 사용 할 수 있다
[생성]
CREATE SEQUENCE 시퀀스이름
START WITH 1
MAXVALUE 999999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER; COMMIT;
[사용]
select 시퀀스이름.nextval from dual;
[생성]
CREATE SEQUENCE 시퀀스이름
START WITH 1
MAXVALUE 999999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER; COMMIT;
[사용]
select 시퀀스이름.nextval from dual;
2013년 9월 22일 일요일
Byte Array to Float
[ 설명 ]
- 아래 함수면 왠만한 예외 상황은 해결
- ordering : 송신측의 상황에 따라 변경해서 사용
- IsNaN : Return Value 의 상태에 따라 적당히 사용하면 되겠다
- Math.Round : 아래 함수를 사용 할 때, Return Value 가 무한소수점이 반환 된다면, 다른 쪽에서 여러가지 문제가 발생 할 수 있다. Parameter 로 소수점 자리수를 조절해도 괜찮을 것이다. 일단 급해서 hard coding...
public static float ByteToFloat(byte[] buf, int startIndex, int nLen, bool ordering)
{
try
{
float fRtn = 0.00f;
byte[] tempBuf = new byte[nLen];
Buffer.BlockCopy(buf, startIndex, tempBuf, 0, nLen);
if (ordering == false)
{
fRtn = System.BitConverter.ToSingle(tempBuf, 0);
}
else
{
fRtn = System.BitConverter.ToSingle(tempBuf.Reverse().ToArray(), tempBuf.Length - sizeof(Single) - 0);
}
if (float.IsNaN(fRtn))
return (float)0;
else
{
return (float)Math.Round(fRtn, 2);
}
}
catch
{
return (float)0;
}
}
- 아래 함수면 왠만한 예외 상황은 해결
- ordering : 송신측의 상황에 따라 변경해서 사용
- IsNaN : Return Value 의 상태에 따라 적당히 사용하면 되겠다
- Math.Round : 아래 함수를 사용 할 때, Return Value 가 무한소수점이 반환 된다면, 다른 쪽에서 여러가지 문제가 발생 할 수 있다. Parameter 로 소수점 자리수를 조절해도 괜찮을 것이다. 일단 급해서 hard coding...
public static float ByteToFloat(byte[] buf, int startIndex, int nLen, bool ordering)
{
try
{
float fRtn = 0.00f;
byte[] tempBuf = new byte[nLen];
Buffer.BlockCopy(buf, startIndex, tempBuf, 0, nLen);
if (ordering == false)
{
fRtn = System.BitConverter.ToSingle(tempBuf, 0);
}
else
{
fRtn = System.BitConverter.ToSingle(tempBuf.Reverse().ToArray(), tempBuf.Length - sizeof(Single) - 0);
}
if (float.IsNaN(fRtn))
return (float)0;
else
{
return (float)Math.Round(fRtn, 2);
}
}
catch
{
return (float)0;
}
}
2013년 9월 15일 일요일
ERWin7 에서 한글 Column Name Display
[환경]
- ERWin7.2.5
1. Physical 선택 후, 여백화면에서 오른쪽 마우스 클릭 후 Harden Physical Names 선택
2. Logical 로 변경
3. 메뉴 [Model] - [Domain Dictionary] 후, Name Inherited by Attribute 항목을 "%ColumnsComment" 로 변경
4. 메뉴 [Model] - [Attributes] 선택 후, Reset 클릭, Reset all attributes in model 선택 후 Select Properties to Reset 항목은 Name 만 선택
- ERWin7.2.5
1. Physical 선택 후, 여백화면에서 오른쪽 마우스 클릭 후 Harden Physical Names 선택
2. Logical 로 변경
3. 메뉴 [Model] - [Domain Dictionary] 후, Name Inherited by Attribute 항목을 "%ColumnsComment" 로 변경
4. 메뉴 [Model] - [Attributes] 선택 후, Reset 클릭, Reset all attributes in model 선택 후 Select Properties to Reset 항목은 Name 만 선택
2013년 9월 5일 목요일
c# 에서 Queue 사용
어떤 객체에 대해서, 한 곳에서 처리하기 위해 간단히 Queue 를 사용해 본다
Transaction 이 거시기 한 Cubrid( invalid buffer position 등과 같은 Exception Error ) 에, 짧은 순간 많은 쿼리를 처리 하거나 할 때...
선언
using System.Collections;
public Queue m_sqlQueue = new Queue();
구현
public override bool SQLAdd(string sQuery)
{
try
{
m_sqlQueue.Enqueue(sQuery);
return true;
}
catch (Exception ex)
{
MiddlewareLog.LogDebug(ex);
return false;
}
}
// 아래 예제 스레드는 간단하지만, diffTick 을 20ms 으로 고정하지 않고, 짱구를 좀 굴리면 좀 더 최적화 해서 처리 할 수 있다, 여기선 Pass
private void DoDBApply()
{
try
{
int startTick = Environment.TickCount;
int currTick = 0;
int diffTick = 0;
do
{
System.Threading.Thread.Sleep(1);
if (bShutdown == true) break;
currTick = Environment.TickCount;
diffTick = currTick - startTick;
if (diffTick > 20)
{
startTick = Environment.TickCount;
diffTick = 0;
if (m_sqlQueue.Count > 0)
{
object str = m_sqlQueue.Dequeue();
QueryExecute((string)str);
}
}
} while (bShutdown == false);
}
catch
{
}
}
Transaction 이 거시기 한 Cubrid( invalid buffer position 등과 같은 Exception Error ) 에, 짧은 순간 많은 쿼리를 처리 하거나 할 때...
선언
using System.Collections;
public Queue m_sqlQueue = new Queue();
구현
public override bool SQLAdd(string sQuery)
{
try
{
m_sqlQueue.Enqueue(sQuery);
return true;
}
catch (Exception ex)
{
MiddlewareLog.LogDebug(ex);
return false;
}
}
// 아래 예제 스레드는 간단하지만, diffTick 을 20ms 으로 고정하지 않고, 짱구를 좀 굴리면 좀 더 최적화 해서 처리 할 수 있다, 여기선 Pass
private void DoDBApply()
{
try
{
int startTick = Environment.TickCount;
int currTick = 0;
int diffTick = 0;
do
{
System.Threading.Thread.Sleep(1);
if (bShutdown == true) break;
currTick = Environment.TickCount;
diffTick = currTick - startTick;
if (diffTick > 20)
{
startTick = Environment.TickCount;
diffTick = 0;
if (m_sqlQueue.Count > 0)
{
object str = m_sqlQueue.Dequeue();
QueryExecute((string)str);
}
}
} while (bShutdown == false);
}
catch
{
}
}
2013년 9월 4일 수요일
2013년 9월 3일 화요일
Dictionary 를 Array List 처럼 사용하기
선언
public static Dictionary<string, object> jsonSPDM24n = new Dictionary<string, object>();
할당
두번째 인자인 object 에 다시 같은 형태의 Dictionary<string, object> 를 Add 메소드를 사용하여 추가하거나, Assign 해서 사용 할 수 있다
if (jsonSPDM24n.ContainsKey(json["device_id"].ToString() + "_" + json["addressno"].ToString()) == true)
{
jsonSPDM24n[json["device_id"].ToString() + "_" + json["addressno"].ToString()] = json;
}
else
{
jsonSPDM24n.Add(json["device_id"].ToString() + "_" + json["addressno"].ToString(), json);
}
즉, 아래와 같은 의미가 되겠다
Dictionary<string, Dictionary<string, object>>
사용
이제 이걸 꺼내서 사용하는 것은,
foreach (KeyValuePair<string, object> temp in jsonSPDM24n)
{
Dictionary<string, object> json = (Dictionary<string, object>)temp.Value;
if ((string)json["producttype"] == "spdm24n")
{
....
}
}
public static Dictionary<string, object> jsonSPDM24n = new Dictionary<string, object>();
할당
두번째 인자인 object 에 다시 같은 형태의 Dictionary<string, object> 를 Add 메소드를 사용하여 추가하거나, Assign 해서 사용 할 수 있다
if (jsonSPDM24n.ContainsKey(json["device_id"].ToString() + "_" + json["addressno"].ToString()) == true)
{
jsonSPDM24n[json["device_id"].ToString() + "_" + json["addressno"].ToString()] = json;
}
else
{
jsonSPDM24n.Add(json["device_id"].ToString() + "_" + json["addressno"].ToString(), json);
}
즉, 아래와 같은 의미가 되겠다
Dictionary<string, Dictionary<string, object>>
사용
이제 이걸 꺼내서 사용하는 것은,
foreach (KeyValuePair<string, object> temp in jsonSPDM24n)
{
Dictionary<string, object> json = (Dictionary<string, object>)temp.Value;
if ((string)json["producttype"] == "spdm24n")
{
....
}
}
2013년 8월 28일 수요일
Oracle 의 (+) 사용
- Outer join 에 사용 된다 ( 조건을 만족하지 않는 행도 반환 )
- Left Outer Join : 왼편 테이블에 행이 없어도 반환
SELECT T1.A, T2.B
FROM TABLE1 T1, TABLE2 T2
WHERE T1.C(+) = T2.C
- Right Outer Join : 오른편 테이블에 행이 없어도 반환
SELECT T1.A, T2.B
FROM TABLE1 T1, TABLE2 T2
WHERE T1.C = T2.C(+)
- Left Outer Join : 왼편 테이블에 행이 없어도 반환
SELECT T1.A, T2.B
FROM TABLE1 T1, TABLE2 T2
WHERE T1.C(+) = T2.C
- Right Outer Join : 오른편 테이블에 행이 없어도 반환
SELECT T1.A, T2.B
FROM TABLE1 T1, TABLE2 T2
WHERE T1.C = T2.C(+)
2013년 8월 27일 화요일
asp.net 개발 시 iis 설치 옵션
환경
- WIndows7 64bit
- Visual Studio 2012
설치
- 제어판 - 프로그램 및 기능 - Windows 기능 사용/사용 안함
- 기본 적으로 위의 환경 일 경우 IIS7.5 가 설치 되게 된다
- Visual Studio 2012 의 Express IIS 를 사용하더라도 기본적으로 설치 한다 ( 호환성과 권한 문제로 3xx, 4xx, 5xx 대 에러를 무수히 만날 것이다
- WIndows7 64bit
- Visual Studio 2012
설치
- 제어판 - 프로그램 및 기능 - Windows 기능 사용/사용 안함
- 기본 적으로 위의 환경 일 경우 IIS7.5 가 설치 되게 된다
- Visual Studio 2012 의 Express IIS 를 사용하더라도 기본적으로 설치 한다 ( 호환성과 권한 문제로 3xx, 4xx, 5xx 대 에러를 무수히 만날 것이다
2013년 8월 22일 목요일
2013년 7월 29일 월요일
80 포트가 사용 중 입니다
Visual Studio 로 IIS Express 을 사용하는 ASP.NET 프로젝트 Build 시 위와 같이 메세지가 발생 한다면...
netstat -ano 로 80 port 를 사용하는 프로세스를 찾는다
사용하는 놈이 NT Kernel 이라면 아래 리스트들 중에 사용하는 놈이 있다
World Wide Web Publishing Service
SQL Server Integration Services 10.0
SQL Server Reporting Services(MSSQLSERVER)
netstat -ano 로 80 port 를 사용하는 프로세스를 찾는다
사용하는 놈이 NT Kernel 이라면 아래 리스트들 중에 사용하는 놈이 있다
World Wide Web Publishing Service
SQL Server Integration Services 10.0
SQL Server Reporting Services(MSSQLSERVER)
.NET Framework 4 Client Profile에 포함되지 않은 기능
- ASP.NET
- 고급 WCF(Windows Communication Foundation) 기능
- .NET Framework Data Provider for Oracle
- 컴파일용 MSBuild
2013년 7월 14일 일요일
vsftpd 에서 특정 사용자의 기본 경로 변경
vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
save & vsftpd restart
usermod 를 사용하여 moncat 이라는 사용자의 홈 디렉토리 경로를 tomcat web root 디렉토리로 변경 한다
usermod -d /usr/local/tomcat7/webapps/ROOT moncat
chroot_local_user=YES
save & vsftpd restart
usermod 를 사용하여 moncat 이라는 사용자의 홈 디렉토리 경로를 tomcat web root 디렉토리로 변경 한다
usermod -d /usr/local/tomcat7/webapps/ROOT moncat
2013년 7월 3일 수요일
NVIDIA 7300GT Die
주말에 빌딩 정전 작업이 있다고 해서, 사용하던 Linux Server 를 꺼두고, 오늘에야 생각나서 전원을 켰다
원래 부팅 시, 팬 소음이 심해서 파워 On 후 한 10분 정도면 어느정도 소음이 조용해져서, 그냥저냥 쓰고 있었다
근데 오늘은 20분이 됐는데도 탱크소리가 멈추지 않는 것이다
얼마전, 딸내미에게 준 X60 Notebook Fan Cooler 도 DIY 한 통빡이 있어, 이건 분명 Fan문제...
온도를 체크 해봤다
Centos 에 sensors 가 없어, yum install lm_sensors 로 설치
>sensors
헉, 2번째(PCI) 온도가 107도
High 가 100도고 Crit 가 105도 였는데, 이미 넘었고, Max 120도까지 찍는게 보였다
아무생각 없이 가만히 쳐다보고 있다가 Shutdown 했다
본체 뚜껑을 열어보니, 먼지가 먼지가...
지포스 VGA 만 탈거해서, 거금 4500원을 주고 Dust brower 로 옥외 주차장가서 사정없이 불어 줬다
다시 장착하고, 부팅해보니, 이런 팬이 걍 멈춰 있네, 이미 아까 120도 찍고, 사망한신 듯...
그래도 다행인건, Main Board 에 OnBoard 로 VGA 가 하나 더 있다.. ㅋㅋ
원래 부팅 시, 팬 소음이 심해서 파워 On 후 한 10분 정도면 어느정도 소음이 조용해져서, 그냥저냥 쓰고 있었다
근데 오늘은 20분이 됐는데도 탱크소리가 멈추지 않는 것이다
얼마전, 딸내미에게 준 X60 Notebook Fan Cooler 도 DIY 한 통빡이 있어, 이건 분명 Fan문제...
온도를 체크 해봤다
Centos 에 sensors 가 없어, yum install lm_sensors 로 설치
>sensors
헉, 2번째(PCI) 온도가 107도
High 가 100도고 Crit 가 105도 였는데, 이미 넘었고, Max 120도까지 찍는게 보였다
아무생각 없이 가만히 쳐다보고 있다가 Shutdown 했다
본체 뚜껑을 열어보니, 먼지가 먼지가...
지포스 VGA 만 탈거해서, 거금 4500원을 주고 Dust brower 로 옥외 주차장가서 사정없이 불어 줬다
다시 장착하고, 부팅해보니, 이런 팬이 걍 멈춰 있네, 이미 아까 120도 찍고, 사망한신 듯...
그래도 다행인건, Main Board 에 OnBoard 로 VGA 가 하나 더 있다.. ㅋㅋ
2013년 6월 24일 월요일
Relative path for Uri ( C# )
this.dashboardViewer1.DashboardUri = new System.Uri(@"../bin/data/Xfra_Widget.xml", System.UriKind.Relative);
2013년 6월 11일 화요일
2013년 5월 8일 수요일
CentOS 에서 설치 되어 있는 Java Provider 변경 하기
CentOS 를 기본적으로 설치하고, Java JDK or JRE 가 필요해서 설치하고, 난 후 아무리 path 를 잡아도 설치한 JDK or JRE 를 사용 할 수가 없다
아래와 같은 방법을 사용한다
환경
- Centos - kernel 2.6.32-279.22.1.e16
준비물
- jdk-7u17-linux-i586.rpm
방법
1. 설치 전, 현재 머신에 설치 된 Java 정보를 확인한다
[root@localhost bin]# alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
2. JDK 설치 ( 난 rpm 버전 다운로드 해서 설치 했다 )
3. path 를 설정 해야 한다, vi ~/.bash_profile 실행 후 맨 아래쯤에 아래와 같이 편집한다
export JAVA_HOME=/usr/java/jdk1.7.0_17/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH
4. 설정 내용을 적용하기 위해, source ~/.bash_profile 를 실행
5. alternatives --config java 실행 후, 새로 설치 한 JAVA 를 선택 한다
[root@localhost bin]# alternatives --config java
There are 3 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
3 /usr/java/jdk1.7.0_17/bin/java
Enter to keep the current selection[+], or type selection number: 3
6. java -version 를 실행 해 본다
[root@localhost bin]# java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)
7. javac 를 실행해서 먹히는지 확인 한다
2013년 5월 7일 화요일
Visual Studio 2012 에서 Linux libcurl Build 하기
환경
준비사항
Install & Build
- OS - Window7
- Tool - Visual Studio 2012 Professional
준비사항
- ActivePerl(5.16.2.1603) - http://www.activestate.com/activeperl/downloads
- OpenSSL(1.0.1e) - http://www.openssl.org/source1.0.1e
- libSSH2(1.4.3) - http://www.libssh2.org
- libcurl(7.28.1) - http://curl.haxx.se/download.html
- Netwide Assembler(2.10.07) - http://www.nasm.us
Install & Build
- ActivePeal 을 설치
- 나머지는 c:\cURL\* 에 압축 풀어서 각각 위치 시킨다
- nasm 을 사용해서 openssl 을 compile 해야 해서 윈도우 환경변수에 nasm Path 를 추가 한다 path=%PATH%;c:\cURL\nasm-2.10.07
- 저 밑에 nmake 시 cl 도 사용하기 때문에 VS Command 를 사용해야 한다
- nasm 을 소스 버전으로 받았으니 make 해서 Binary 를 만든다. c:\cURL\nasm-2.10.07 에 가서 nmake /f Mkfiles/msvc.mak 를 실행 한다
- openssl lib output 용 Directory 를 하나 더 만든다 mkdir c:\cURL\openssl_lib
- 이제 openssl 소스 폴더로 이동 cd c:\cURL\openssl-1.0.1e\
- perl Configure VC-WIN32 --prefix=c:\cURL\openssl_lib
- ms\do_nasm ( 시간이 좀 걸리다 )
- c:\cURL\openssl-1.0.1e\nmake -f ms\nt.mak ( 이건 시간이 더 걸리다. 한 2시간 걸리는 것 같다 )
- c:\cURL\openssl-1.0.1e\out32 에서 확인
- c:\cURL\openssl-1.0.1e\nmake -f ms\nt.mak test ( 이것도 오래 걸리는데, 중간에 중지 시켰다 )
- c:\cURL\openssl-1.0.1e\nmake -f ms\nt.mak install
- VS 2012 를 열고 c:\cURL\libssh2-1.4.3\win32\libssh2.dsp 을 Open 한다
- VS IDE 에서 빌드->구성 관리자를 선택 후 활성 솔루션 구성을 LIB Debug 로 설정 한다
- VS IDE 의 솔루션 탐색기에서 libssh2 를 선택 후 오른쪽 마우스 클릭하여 속성을 선택한다
- 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 추가 포함 디렉터리에 다음을 추가 한다
- 속성 페이지에서 구성 속성->C/C++->코드 생서 메뉴 중 런타임 라이브러리 항목을 "다중 스레드 디버그 DLL (/MDd) 로 변경 한다
- 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 출력 파일 속성을 Debug_lib\libssh2.lib 으로 변경 한다
- 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 종속성 항목의 속성에 libeay32.lib;ssleay32.lib 를 추가 한다
- 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 라이브러리 디렉터리에 c:\cURL\openssl_lib\lib
- 이제 libssh2 를 Build 한다
- curl-7.28.1 을 다운로드하고 c:\cURL\curl-7.28.1 에 압축을 푼다 ( 이 버전만 vsproj 가 있는 것 같다 )
- c:\cURL\curl-7.28.1\libcurl.vcproj 를 VS2012 로 Open 한다
- VS IDE 의 솔루션 탐색기에서 libcurl 를 선택 후 오른쪽 마우스 클릭하여 속성을 선택한다
- 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 추가 포함 디렉터리에 다음을 추가 한다 ( c:\cURL\libssh2-1.4.3\include\ )
- 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 전처리기 정의에 다음을 추가 한다 ( ;CURL_STATICLIB;USE_LIBSSH2;CURL_DISABLE_LDAP;HAVE_LIBSSH2;HAVE_LIBSSH2_H;LIBSSH2_WIN32 ;LIBSSH2_LIBRARY )
- 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 종속성 항목의 속성에 libssh2.lib 를 추가 한다
- 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 라이브러리 디렉터리에 c:\cURL\libssh2-1.4.3\win32\Debug_lib 를 추가 한다
- 이제 libcurl 를 Build 한다
- 이제 위에서 Build 된 libcurl lib 를 가지고 테스트 프로그램을 만든다
- 프로젝트를 만들기 전에 미리 폴더 구성을 해둔다
- c:\cURL\Project
- c:\cURL\Project\custom_libraries
- c:\cURL\Project\custom_libraries\include
- c:\cURL\Project\custom_libraries\lib_dbg
- 위에서 Build 된 c:\cURL\curl-7.28.1\include\ 의 모든 폴더/파일을 c:\cURL\Projects\custom_libraries\include\ 로 복사한다
- 그리고 c:\cURL\curl-7.28.1\lib\Debug\ 의 모든 파일들을 c:\cURL\Projects\custom_libraries\lib_dbg\ 로 복사한
- VS 2012 를 실행하고 새 프로젝트를 만든다 win32 Console Application 으로 만든다. Location 은 c:\cURL\Projects\ 을 선택하고, Create directory for solution 은 체크해 둔다. 프로젝트 이름은 test_curl 로 정했다
- Application Settings 에서 Addtional options 들 중 기본 체크되어 있는 항목 들을 모두 언체크 한다
- VS IDE 의 솔루션 탐색기에서 test_curl 를 선택 후 오른쪽 마우스 클릭하여 속성을 선택한다
- 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 추가 포함 디렉터리에 다음을 추가 한다 ( c:\cURL\Project\custom_libraries\include )
- 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 전처리기 정의에 다음을 추가 한다 ( ;CURL_STATICLIB )
- 속성 페이지에서 구성 속성->링커->일반 메뉴 중 추가 라이브러리 디렉터리에 다음을 추가 한다 ( c:\cURL\Project\custom_libraries\lib_dbg )
- 속성 페이지에서 구성 속성->링커->입력 메뉴 중 추가 종속성에 다음을 추가 한다 ( ;libcurl.lib;ws2_32.lib )
- 끝
2013년 3월 6일 수요일
Asterisk 11 에서 TLS 와 SRTP 를 정상적으로 돌린 예
오류를 만났을 때를 대비해 올려 둔다
<--- SIP read from TLS:192.168.1.151:58418 --->
INVITE sip:1001@192.168.1.106:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b295a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 5 INVITE
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
Supported: 100rel, replaces, from-change
User-Agent: SIPPER for PhonerLite
P-Preferred-Identity: <sip:1000@192.168.1.106>
Content-Length: 365
v=0
o=- 3664105484 1 IN IP4 192.168.1.151
s=SIPPER for PhonerLite
c=IN IP4 192.168.1.151
t=0 0
m=audio 5062 RTP/SAVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:ZHXu5KBoj8MK32CKMJgQv6IyCaDCJGsxjaP3heIV
a=encryption:optional
a=ssrc:2834382215
a=sendrecv
<------------->
--- (14 headers 14 lines) ---
Sending to 192.168.1.151:58418 (no NAT)
Using INVITE request as basis request - 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
Found peer '1000' for '1000' from 192.168.1.151:58418
<--- Reliably Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b295a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as0c95498a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 5 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="54692493"
Content-Length: 0
<------------>
Scheduling destruction of SIP dialog '802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151' in 32000 ms (Method: INVITE)
<--- SIP read from TLS:192.168.1.151:58418 --->
ACK sip:1001@192.168.1.106:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b295a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as0c95498a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 5 ACK
Content-Length: 0
<------------->
--- (7 headers 0 lines) ---
<--- SIP read from TLS:192.168.1.151:58418 --->
INVITE sip:1001@192.168.1.106:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Authorization: Digest username="1000", realm="asterisk", nonce="54692493", uri="sip:1001@192.168.1.106:5061;transport=tls", response="0af5468b1ce97a76e4ad687f79ddd48c", algorithm=MD5
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
Supported: 100rel, replaces, from-change
User-Agent: SIPPER for PhonerLite
P-Preferred-Identity: <sip:1000@192.168.1.106>
Content-Length: 365
v=0
o=- 3664105484 1 IN IP4 192.168.1.151
s=SIPPER for PhonerLite
c=IN IP4 192.168.1.151
t=0 0
m=audio 5062 RTP/SAVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:ZHXu5KBoj8MK32CKMJgQv6IyCaDCJGsxjaP3heIV
a=encryption:optional
a=ssrc:2834382215
a=sendrecv
<------------->
--- (15 headers 14 lines) ---
Sending to 192.168.1.151:58418 (NAT)
Using INVITE request as basis request - 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
Found peer '1000' for '1000' from 192.168.1.151:58418
== Using SIP RTP CoS mark 5
Found RTP audio format 8
Found RTP audio format 0
Found RTP audio format 101
Found audio description format PCMA for ID 8
Found audio description format PCMU for ID 0
Found audio description format telephone-event for ID 101
Capabilities: us - (ulaw|alaw), peer - audio=(ulaw|alaw)/video=(nothing)/text=(nothing), combined - (ulaw|alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x1 (telephone-event|), combined - 0x1 (telephone-event|)
Peer audio RTP is at port 192.168.1.151:5062
Looking for 1001 in default (domain 192.168.1.106)
list_route: hop: <sip:1000@192.168.1.151:5062;transport=tls>
<--- Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 100 Trying
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:1001@192.168.1.106:5061;transport=TLS>
Content-Length: 0
<------------>
-- Executing [1001@default:1] NoOp("SIP/1000-00000010", "STRP TEST CALL") in new stack
-- Executing [1001@default:2] Set("SIP/1000-00000010", "_SIP_SRTP_SDES=1") in new stack
-- Executing [1001@default:3] Set("SIP/1000-00000010", "_SIPSRTP=enable") in new stack
-- Executing [1001@default:4] Dial("SIP/1000-00000010", "SIP/1001") in new stack
== Using SIP RTP CoS mark 5
Audio is at 10452
Adding codec 100003 (ulaw) to SDP
Adding codec 100004 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 192.168.1.131:1162:
INVITE sip:1001@192.168.1.131:5064;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport
Max-Forwards: 70
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>
Contact: <sip:1000@192.168.1.106:5061;transport=TLS>
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
User-Agent: Asterisk PBX 11.2.1
Date: Thu, 07 Mar 2013 05:35:12 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 346
v=0
o=root 1013182859 1013182859 IN IP4 192.168.1.106
s=Asterisk PBX 11.2.1
c=IN IP4 192.168.1.106
t=0 0
m=audio 10452 RTP/SAVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:mMRKpI/m8Km1Of9+Yg+ZXvRhJDbHkpsWkG39TxPd
---
-- Called SIP/1001
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 100 Trying
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Server: SIPPER for PhonerLite
Content-Length: 0
<------------->
--- (9 headers 0 lines) ---
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
Contact: <sip:1001@192.168.1.131:5064;transport=tls>
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Server: SIPPER for PhonerLite
Content-Length: 0
<------------->
--- (10 headers 0 lines) ---
list_route: hop: <sip:1001@192.168.1.131:5064;transport=tls>
-- SIP/1001-00000011 is ringing
<--- Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:1001@192.168.1.106:5061;transport=TLS>
Content-Length: 0
<------------>
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
Contact: <sip:1001@192.168.1.131:5064;transport=tls>
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Supported: replaces, from-change
Server: SIPPER for PhonerLite
Content-Length: 341
v=0
o=- 3541565629 1 IN IP4 192.168.1.131
s=SIPPER for PhonerLite
c=IN IP4 192.168.1.131
t=0 0
m=audio 5064 RTP/SAVP 8 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:X8/0CNQMoXIwAHnR83FGV90zS/v2e5CfvEBVIc+f
a=ssrc:519851118
a=sendrecv
<------------->
--- (12 headers 13 lines) ---
Found RTP audio format 8
Found RTP audio format 0
Found RTP audio format 101
Found audio description format PCMU for ID 0
Found audio description format PCMA for ID 8
Found audio description format telephone-event for ID 101
Capabilities: us - (ulaw|alaw), peer - audio=(ulaw|alaw)/video=(nothing)/text=(nothing), combined - (ulaw|alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x1 (telephone-event|), combined - 0x1 (telephone-event|)
Peer audio RTP is at port 192.168.1.131:5064
list_route: hop: <sip:1001@192.168.1.131:5064;transport=tls>
set_destination: Parsing <sip:1001@192.168.1.131:5064;transport=tls> for address/port to send to
set_destination: set destination to 192.168.1.131:5064
Transmitting (NAT) to 192.168.1.131:1162:
ACK sip:1001@192.168.1.131:5064;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK15518c0a;rport
Max-Forwards: 70
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Contact: <sip:1000@192.168.1.106:5061;transport=TLS>
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 ACK
User-Agent: Asterisk PBX 11.2.1
Content-Length: 0
---
-- SIP/1001-00000011 answered SIP/1000-00000010
Audio is at 18472
Adding codec 100003 (ulaw) to SDP
Adding codec 100004 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
<--- Reliably Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:1001@192.168.1.106:5061;transport=TLS>
Content-Type: application/sdp
Content-Length: 344
v=0
o=root 167695273 167695273 IN IP4 192.168.1.106
s=Asterisk PBX 11.2.1
c=IN IP4 192.168.1.106
t=0 0
m=audio 18472 RTP/SAVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:aZZxOF0pTT+ZX6yqPO+2OFYQSn6NACHVUya5wQQt
<------------>
<--- SIP read from TLS:192.168.1.151:58418 --->
ACK sip:1001@192.168.1.106:5061;transport=TLS SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK808480975685e211b296a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 ACK
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Authorization: Digest username="1000", realm="asterisk", nonce="54692493", uri="sip:1001@192.168.1.106:5061;transport=TLS", response="0798b41a3be5d62178429ba127c43925", algorithm=MD5
Max-Forwards: 70
Content-Length: 0
<------------->
--- (10 headers 0 lines) ---
<--- SIP read from TLS:192.168.1.151:58418 --->
BYE sip:1001@192.168.1.106:5061;transport=TLS SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK00fc0e9e5685e211b296a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 7 BYE
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Authorization: Digest username="1000", realm="asterisk", nonce="54692493", uri="sip:1001@192.168.1.106:5061;transport=TLS", response="dd5cbc609545f27c554309306dc71135", algorithm=MD5
Max-Forwards: 70
User-Agent: SIPPER for PhonerLite
Content-Length: 0
<------------->
--- (11 headers 0 lines) ---
Sending to 192.168.1.151:58418 (NAT)
Scheduling destruction of SIP dialog '802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151' in 32000 ms (Method: BYE)
<--- Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK00fc0e9e5685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 7 BYE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0
<------------>
-- Executing [h@default:1] Hangup("SIP/1000-00000010", "") in new stack
== Spawn extension (default, h, 1) exited non-zero on 'SIP/1000-00000010'
Scheduling destruction of SIP dialog '0890653214d997963645c7254cd05250@192.168.1.106:5061' in 32000 ms (Method: INVITE)
set_destination: Parsing <sip:1001@192.168.1.131:5064;transport=tls> for address/port to send to
set_destination: set destination to 192.168.1.131:5064
Reliably Transmitting (NAT) to 192.168.1.131:1162:
BYE sip:1001@192.168.1.131:5064;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK5217b6fa;rport
Max-Forwards: 70
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 103 BYE
User-Agent: Asterisk PBX 11.2.1
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
Content-Length: 0
---
== Spawn extension (default, 1001, 4) exited non-zero on 'SIP/1000-00000010'
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK5217b6fa;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 103 BYE
Contact: <sip:1001@192.168.1.131:5064;transport=tls>
Server: SIPPER for PhonerLite
Content-Length: 0
Client A ( 1000 ) <--> Asterisk ( TLS, SRTP ) <--> Client B ( 1001 )
Client A IP :
192.168.1.151
Client B IP :
192.168.1.131
Asterisk IP :
192.168.1.106
<--- SIP read from TLS:192.168.1.151:58418 --->
INVITE sip:1001@192.168.1.106:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b295a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 5 INVITE
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
Supported: 100rel, replaces, from-change
User-Agent: SIPPER for PhonerLite
P-Preferred-Identity: <sip:1000@192.168.1.106>
Content-Length: 365
v=0
o=- 3664105484 1 IN IP4 192.168.1.151
s=SIPPER for PhonerLite
c=IN IP4 192.168.1.151
t=0 0
m=audio 5062 RTP/SAVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:ZHXu5KBoj8MK32CKMJgQv6IyCaDCJGsxjaP3heIV
a=encryption:optional
a=ssrc:2834382215
a=sendrecv
<------------->
--- (14 headers 14 lines) ---
Sending to 192.168.1.151:58418 (no NAT)
Using INVITE request as basis request - 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
Found peer '1000' for '1000' from 192.168.1.151:58418
<--- Reliably Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b295a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as0c95498a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 5 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="54692493"
Content-Length: 0
<------------>
Scheduling destruction of SIP dialog '802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151' in 32000 ms (Method: INVITE)
<--- SIP read from TLS:192.168.1.151:58418 --->
ACK sip:1001@192.168.1.106:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b295a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as0c95498a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 5 ACK
Content-Length: 0
<------------->
--- (7 headers 0 lines) ---
<--- SIP read from TLS:192.168.1.151:58418 --->
INVITE sip:1001@192.168.1.106:5061;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Authorization: Digest username="1000", realm="asterisk", nonce="54692493", uri="sip:1001@192.168.1.106:5061;transport=tls", response="0af5468b1ce97a76e4ad687f79ddd48c", algorithm=MD5
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
Supported: 100rel, replaces, from-change
User-Agent: SIPPER for PhonerLite
P-Preferred-Identity: <sip:1000@192.168.1.106>
Content-Length: 365
v=0
o=- 3664105484 1 IN IP4 192.168.1.151
s=SIPPER for PhonerLite
c=IN IP4 192.168.1.151
t=0 0
m=audio 5062 RTP/SAVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:ZHXu5KBoj8MK32CKMJgQv6IyCaDCJGsxjaP3heIV
a=encryption:optional
a=ssrc:2834382215
a=sendrecv
<------------->
--- (15 headers 14 lines) ---
Sending to 192.168.1.151:58418 (NAT)
Using INVITE request as basis request - 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
Found peer '1000' for '1000' from 192.168.1.151:58418
== Using SIP RTP CoS mark 5
Found RTP audio format 8
Found RTP audio format 0
Found RTP audio format 101
Found audio description format PCMA for ID 8
Found audio description format PCMU for ID 0
Found audio description format telephone-event for ID 101
Capabilities: us - (ulaw|alaw), peer - audio=(ulaw|alaw)/video=(nothing)/text=(nothing), combined - (ulaw|alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x1 (telephone-event|), combined - 0x1 (telephone-event|)
Peer audio RTP is at port 192.168.1.151:5062
Looking for 1001 in default (domain 192.168.1.106)
list_route: hop: <sip:1000@192.168.1.151:5062;transport=tls>
<--- Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 100 Trying
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:1001@192.168.1.106:5061;transport=TLS>
Content-Length: 0
<------------>
-- Executing [1001@default:1] NoOp("SIP/1000-00000010", "STRP TEST CALL") in new stack
-- Executing [1001@default:2] Set("SIP/1000-00000010", "_SIP_SRTP_SDES=1") in new stack
-- Executing [1001@default:3] Set("SIP/1000-00000010", "_SIPSRTP=enable") in new stack
-- Executing [1001@default:4] Dial("SIP/1000-00000010", "SIP/1001") in new stack
== Using SIP RTP CoS mark 5
Audio is at 10452
Adding codec 100003 (ulaw) to SDP
Adding codec 100004 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 192.168.1.131:1162:
INVITE sip:1001@192.168.1.131:5064;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport
Max-Forwards: 70
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>
Contact: <sip:1000@192.168.1.106:5061;transport=TLS>
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
User-Agent: Asterisk PBX 11.2.1
Date: Thu, 07 Mar 2013 05:35:12 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 346
v=0
o=root 1013182859 1013182859 IN IP4 192.168.1.106
s=Asterisk PBX 11.2.1
c=IN IP4 192.168.1.106
t=0 0
m=audio 10452 RTP/SAVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:mMRKpI/m8Km1Of9+Yg+ZXvRhJDbHkpsWkG39TxPd
---
-- Called SIP/1001
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 100 Trying
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Server: SIPPER for PhonerLite
Content-Length: 0
<------------->
--- (9 headers 0 lines) ---
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
Contact: <sip:1001@192.168.1.131:5064;transport=tls>
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Server: SIPPER for PhonerLite
Content-Length: 0
<------------->
--- (10 headers 0 lines) ---
list_route: hop: <sip:1001@192.168.1.131:5064;transport=tls>
-- SIP/1001-00000011 is ringing
<--- Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:1001@192.168.1.106:5061;transport=TLS>
Content-Length: 0
<------------>
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK62a1d8b9;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 INVITE
Contact: <sip:1001@192.168.1.131:5064;transport=tls>
Content-Type: application/sdp
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Supported: replaces, from-change
Server: SIPPER for PhonerLite
Content-Length: 341
v=0
o=- 3541565629 1 IN IP4 192.168.1.131
s=SIPPER for PhonerLite
c=IN IP4 192.168.1.131
t=0 0
m=audio 5064 RTP/SAVP 8 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:X8/0CNQMoXIwAHnR83FGV90zS/v2e5CfvEBVIc+f
a=ssrc:519851118
a=sendrecv
<------------->
--- (12 headers 13 lines) ---
Found RTP audio format 8
Found RTP audio format 0
Found RTP audio format 101
Found audio description format PCMU for ID 0
Found audio description format PCMA for ID 8
Found audio description format telephone-event for ID 101
Capabilities: us - (ulaw|alaw), peer - audio=(ulaw|alaw)/video=(nothing)/text=(nothing), combined - (ulaw|alaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event|), peer - 0x1 (telephone-event|), combined - 0x1 (telephone-event|)
Peer audio RTP is at port 192.168.1.131:5064
list_route: hop: <sip:1001@192.168.1.131:5064;transport=tls>
set_destination: Parsing <sip:1001@192.168.1.131:5064;transport=tls> for address/port to send to
set_destination: set destination to 192.168.1.131:5064
Transmitting (NAT) to 192.168.1.131:1162:
ACK sip:1001@192.168.1.131:5064;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK15518c0a;rport
Max-Forwards: 70
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Contact: <sip:1000@192.168.1.106:5061;transport=TLS>
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 102 ACK
User-Agent: Asterisk PBX 11.2.1
Content-Length: 0
---
-- SIP/1001-00000011 answered SIP/1000-00000010
Audio is at 18472
Adding codec 100003 (ulaw) to SDP
Adding codec 100004 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
<--- Reliably Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK802a1e955685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 INVITE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:1001@192.168.1.106:5061;transport=TLS>
Content-Type: application/sdp
Content-Length: 344
v=0
o=root 167695273 167695273 IN IP4 192.168.1.106
s=Asterisk PBX 11.2.1
c=IN IP4 192.168.1.106
t=0 0
m=audio 18472 RTP/SAVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:aZZxOF0pTT+ZX6yqPO+2OFYQSn6NACHVUya5wQQt
<------------>
<--- SIP read from TLS:192.168.1.151:58418 --->
ACK sip:1001@192.168.1.106:5061;transport=TLS SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK808480975685e211b296a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 6 ACK
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Authorization: Digest username="1000", realm="asterisk", nonce="54692493", uri="sip:1001@192.168.1.106:5061;transport=TLS", response="0798b41a3be5d62178429ba127c43925", algorithm=MD5
Max-Forwards: 70
Content-Length: 0
<------------->
--- (10 headers 0 lines) ---
<--- SIP read from TLS:192.168.1.151:58418 --->
BYE sip:1001@192.168.1.106:5061;transport=TLS SIP/2.0
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK00fc0e9e5685e211b296a5e36e5e2deb;rport;alias
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 7 BYE
Contact: <sip:1000@192.168.1.151:5062;transport=tls>
Authorization: Digest username="1000", realm="asterisk", nonce="54692493", uri="sip:1001@192.168.1.106:5061;transport=TLS", response="dd5cbc609545f27c554309306dc71135", algorithm=MD5
Max-Forwards: 70
User-Agent: SIPPER for PhonerLite
Content-Length: 0
<------------->
--- (11 headers 0 lines) ---
Sending to 192.168.1.151:58418 (NAT)
Scheduling destruction of SIP dialog '802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151' in 32000 ms (Method: BYE)
<--- Transmitting (NAT) to 192.168.1.151:58418 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.151:58418;branch=z9hG4bK00fc0e9e5685e211b296a5e36e5e2deb;alias;received=192.168.1.151;rport=58418
From: "1000" <sip:1000@192.168.1.106>;tag=3690110982
To: <sip:1001@192.168.1.106:5061;transport=tls>;tag=as4a1ba60a
Call-ID: 802A1E95-5685-E211-B294-A5E36E5E2DEB@192.168.1.151
CSeq: 7 BYE
Server: Asterisk PBX 11.2.1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0
<------------>
-- Executing [h@default:1] Hangup("SIP/1000-00000010", "") in new stack
== Spawn extension (default, h, 1) exited non-zero on 'SIP/1000-00000010'
Scheduling destruction of SIP dialog '0890653214d997963645c7254cd05250@192.168.1.106:5061' in 32000 ms (Method: INVITE)
set_destination: Parsing <sip:1001@192.168.1.131:5064;transport=tls> for address/port to send to
set_destination: set destination to 192.168.1.131:5064
Reliably Transmitting (NAT) to 192.168.1.131:1162:
BYE sip:1001@192.168.1.131:5064;transport=tls SIP/2.0
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK5217b6fa;rport
Max-Forwards: 70
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 103 BYE
User-Agent: Asterisk PBX 11.2.1
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
Content-Length: 0
---
== Spawn extension (default, 1001, 4) exited non-zero on 'SIP/1000-00000010'
<--- SIP read from TLS:192.168.1.131:1162 --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.1.106:5061;branch=z9hG4bK5217b6fa;rport=5061
From: "1000" <sip:1000@192.168.1.106>;tag=as2d08fdeb
To: <sip:1001@192.168.1.131:5064;transport=tls>;tag=802a1e955685e211bb01f39673b1fead
Call-ID: 0890653214d997963645c7254cd05250@192.168.1.106:5061
CSeq: 103 BYE
Contact: <sip:1001@192.168.1.131:5064;transport=tls>
Server: SIPPER for PhonerLite
Content-Length: 0
RTP/SAVP
SRTP 를 적용할 때는 SAVP 를 사용해야 한다
Abbreviation for Real-time Transport Protocol / Secure Audio Video Profile
The RTP (Real-time Transport Protocol) specification establishes a registry of profile names for use by higher-level control protocols, such as the SDP (Session Description Protocol), to refer to transport methods. This profile registers the name Real-time Transport Protocol / Secure Audio Video Profile .
RFC 3711
2013년 2월 27일 수요일
CentOS X Window 시작 여부 설정
CentOS 6.3 에서
# vi /etc/inittab
id:3:initdefault: <-- 수정
# vi /etc/inittab
id:3:initdefault: <-- 수정
- Run level 3 : full multiuser environment with networking.
- run level 3 + X window.
피드 구독하기:
글 (Atom)