글 싣는 순서

상. SIP Normalization 과 LUA 

중. 루아 스크립팅을 도와주는 도구들
하. 복잡한 스크립트 만들기   



시작하며

루아 스크립트를 만들고 적용하고 확인하는 과정에 필요한 툴을 살펴보곘습니다.  



스크립트 만들기를 도와주는 온라인 툴
루아 스크립트는 만들다보면 생각보다 실수가 많습니다. 실수없이 루아 스크립트를 작성할 수 있도록 도와주는 repl.it 이라는 온라인 스크립트 작성 툴을 사용해 보겠습니다. 웹브라우저로 접속하여 루아(LUA)를 기본 언어로 선택합니다.  




왼쪽에는 스크립트를 짤 수 있고, 시행 결과를 오른쪽 화면에서 확인할 수 있습니다. 첫 연재에서 간단하게 만든 스크립트를 복사해서 붙여놓었습니다. 구문이나 오타가 발생했을 경우에는 아래 그림과 같이 붉은색 박스에 엑스마크가 표시되므로 쉽게 확인할 수 있습니다.  




이 툴을 이용하고 않하고의 차이는 하늘과 땅차이입니다. 꼭 사용해 보시기 바랍니다.




CUCM에서 SIP 패킷을 캡쳐하여 스크립트 적용여부 확인하기 
루아 스크립트를 CUCM 트렁크에 적용한 후에 확인할 수 있는 방법은 여러가지가 있지만, 가장 확실한 CUCM에서 패킷을 캡쳐하여 와이어샤크로 확인하는 방법을 살펴보겠습니다. 


패킷을 캡쳐하기 위해서는 CUCM에 CLI 창으로 SSH로 접근한 후에 "utils network capture" 명령어를 사용합니다. 아무생각없이 아래와 같이 명령어를 치면 기본 설정 값에 따라 패킷 1000개에 대한 정보를 128 바이트로 나누어 화면에 출력합니다. 


admin:utils network capture 

Executing command with options:

 size=128                count=1000              interface=eth0

 src=                    dest=                   port=                  

 ip=                   

14:51:35.120490 STP 802.1d, Config, Flags [none], bridge-id 8001.5c:50:15:76:ab:80.8017, length 43

14:51:35.126361 IP cucm10.geps.or.kr.ssh > 192.168.0.78.57795: Flags [P.], seq 2542048823:2542048971, ack 1933659765, win 249, options [nop,nop,TS val 166672419 ecr 1241799968], length 148

14:51:35.126703 IP 192.168.0.78.57795 > cucm10.geps.




CUCM이 패킷을 캡쳐한 것을 파일로 생성하면 와이어샤크로 다운로드 받아 보는 것이 목적이므로 좀 더 세세한 옵션을 활용합니다. SIP 패킷 100개를 testsipcap 이라는 파일명으로 만들어서 platform/cli/ 라는 디렉토리에 저장하도록 명령어를 입력하였습니다.  


admin:utils network capture size 1500 count 100 port 5060 file testsipcap 

Executing command with options:

 size=1500               count=100               interface=eth0

 src=                    dest=                   port=5060             

 ip=                  



파일이 제대로 생성되었는 지를 확인하는 명령어는 다음과 같습니다. 



admin:file list activelog platform/cli/

testsipcap.cap                         

dir count = 0, file count = 1



SFTP 서버로 생성된 파일을 다운로드합니다.  


admin:file get activelog platform/cli/testsipcap.cap

Please wait while the system is gathering files info ...done.

Sub-directories were not traversed.

Number of files affected: 1

Total size in Bytes: 6040

Total size in Kbytes: 5.8984375

Would you like to proceed [y/n]? y

SFTP server IP: 192.168.101.101

SFTP server port [22]:

User ID: admin

Password: ********

Download directory: Downloads

.

Transfer completed.



이제 와이어샤크로 파일을 분석합니다. 

 




시스코 ISR 라우터에서 확인하기
가장 단순한 방법으로 CUCM과 ISR 라우터간 SIP 트렁크가 설정되었을 경우에 이용합니다. 작성한 루아 스크립트를 Voice Gateway와 연동된 트렁크에 적용한 후에 SIP 패킷을 디버깅합니다.  메세지를 전체를 확인할 수 있는 명령어는 "debug ccsip messages" 입니다.  


Router1# debug ccsip messages
SIP Call messages tracing is enabled Router1# *Mar 6 14:19:14: Sent: INVITE sip:3660210@166.34.245.231;user=phone;phone-context=unknown SIP/2.0 Via: SIP/2.0/UDP 166.34.245.230:55820 From: "3660110" <sip:3660110@166.34.245.230> To: <sip:3660210@166.34.245.231;user=phone;phone-context=unknown> Date: Sat, 06 Mar 1993 19:19:14 GMT Call-ID: ABBAE7AF-823100E2-0-1CD274BC@172.18.192.194 Cisco-Guid: 2881152943-2184249568-0-483551624 User-Agent: Cisco VoIP Gateway/ IOS 12.x/ SIP enabled CSeq: 101 INVITE Max-Forwards: 6 Timestamp: 731427554 Contact: <sip:3660110@166.34.245.230:5060;user=phone> Expires: 180 Content-Type: application/sdp Content-Length: 138 v=0 o=CiscoSystemsSIP-GW-UserAgent 5596 7982 IN IP4 166.34.245.230 s=SIP Call t=0 0 c=IN IP4 166.34.245.230 m=audio 20762 RTP/AVP 0



마치며
루아스크립트를 편리하게 만들어주는 툴을 살펴보았습니다. 다음 글에서는 좀 더 복잡한 형식의 루아 스크립트를 살펴보고, 사전 정의된 루아스크립트를 분석해 보겠습니다. 




라인하
트 유씨누스(UCnus) (CCIEV #18487)
  --------------------------------------
ucwana@gmail.com (라인하트의 구글 이메일) 
http://twitter.com/nexpertnet (넥스퍼트 블로그의 트위터, 최신 업데이트 정보 및 공지 사항) 
http://groups.google.com/group/cciev (시스코 UC를 공부하는 사람들이 모인 구글 구룹스) 
http://groups.google.com/group/ucforum (UC를 공부하는 사람들이 모인 구글 구룹스) 
세상을 이롭게 하는 기술을 지향합니다. ________________________________________________________



Posted by 라인하트

댓글을 달아 주세요