2017-02-09 8 views
1

파이썬 소켓을 사용하여 SIP 메시지를 보내야합니다. 클라이언트가 서버에 뭔가를 보냈지 만 클라이언트가 SIP 메시지를 보내도록 만들 수 없습니다.파이썬 소켓을 사용하여 SIP 메시지를 보내는 방법

#!/usr/bin/python 

import socket 

R_IP = '192.168.2.1' 
R_PORT = 5060 

message = 'INVITE sip:[email protected] SIP/2.0 To: <sip:[email protected]>\x0d\x0aFrom: sip:[email protected];tag=R400_BAD_REQUEST;taag=4488.1908442942.0\x0d\x0aP-Served-User: sip:[email protected]\x0d\x0aCall-ID: [email protected]\x0d\x0aCSeq: 1 INVITE\x0d\x0aContact: sip:[email protected]\x0d\x0aMax-Forwards: 70\x0d\x0aVia: SIP/2.0/TCP 10.44.40.47;branch=z9hG4bK1908442942.4488.0\x0d\x0aContent-Length: 10\x0d\x0a\x0d\x0aRandomText' 

def sendPacket(): 
    proto = socket.getprotobyname('tcp')       
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#, proto) 

    try: 
     s.connect((R_IP , R_PORT)) 
     s.sendall(message)          
    except socket.error: 
     pass 
    finally: 
     s.close() 

sendPacket() 

몇 가지 아이디어가 있습니까?

답변

0

알겠습니다. 누군가가 도움이 될 수 있습니다.

INVITE sip:[email protected] SIP/2.0 
To: <to> 
Call-ID: <call_id> 
<empty line> 
body 

그래서,

message = 'INVITE sip:[email protected] SIP/2.0\r\nTo: <sip:[email protected]>\r\nFroma: sip:[email protected];tag=R400_BAD_REQUEST;taag=4488.1908442942.0\r\nP-Served-User: sip:[email protected]\r\nCall-ID: [email protected]\r\nCSeq: 1 INVITE\r\nContact: sip:[email protected]\r\nMax-Forwards: 70\r\nVia: SIP/2.0/TCP 10.44.40.47;branch=z9hG4bK1908442942.4488.0\r\nContent-Length: 10\r\n\r\nRandomText' 

\r\n이 빈 공간

을하지 않고 매우 중요합니다 다음과 같이

적절한 형식 SIP 메시지는