[mgcp] Start to look into the MGCP messages and extract the CI
we will need the call identifier for the MDCX and DLCX message for now we were just assuming it would increment, use som python to extract the CI from a possible response, also switch back to a blocking read to test the BSC nat.
This commit is contained in:
parent
ef0b641f63
commit
fb83b7a86d
|
@ -25,15 +25,24 @@ def hexdump(src, length=8):
|
|||
|
||||
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
server_socket.bind(("127.0.0.1", MGCP_CALLAGENT_PORT))
|
||||
server_socket.setblocking(0)
|
||||
server_socket.setblocking(1)
|
||||
|
||||
|
||||
def send_receive(packet):
|
||||
last_ci = 1
|
||||
def send_and_receive(packet):
|
||||
global last_ci
|
||||
server_socket.sendto(packet, ("127.0.0.1", MGCP_GATEWAY_PORT))
|
||||
try:
|
||||
data, addr = server_socket.recvfrom(4096)
|
||||
|
||||
# attempt to store the CI of the response
|
||||
list = data.split("\n")
|
||||
for item in list:
|
||||
if item.startswith("I: "):
|
||||
last_ci = int(item[3:])
|
||||
|
||||
print hexdump(data), addr
|
||||
except socket.error:
|
||||
except socket.error, e:
|
||||
print e
|
||||
pass
|
||||
|
||||
def generate_tid():
|
||||
|
@ -42,13 +51,10 @@ def generate_tid():
|
|||
|
||||
|
||||
|
||||
i = 1
|
||||
while True:
|
||||
send_receive(rsip_resp)
|
||||
send_receive(audit_packet % generate_tid())
|
||||
send_receive(crcx_packet % generate_tid() )
|
||||
send_receive(mdcx_packet % (generate_tid(), i))
|
||||
send_receive(dlcx_packet % (generate_tid(), i))
|
||||
i = i + 1
|
||||
send_and_receive(audit_packet % generate_tid())
|
||||
send_and_receive(crcx_packet % generate_tid() )
|
||||
send_and_receive(mdcx_packet % (generate_tid(), last_ci))
|
||||
send_and_receive(dlcx_packet % (generate_tid(), last_ci))
|
||||
|
||||
time.sleep(3)
|
||||
|
|
Loading…
Reference in New Issue