diff options
Diffstat (limited to 'openbsc')
-rwxr-xr-x | openbsc/contrib/mgcp_server.py | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/openbsc/contrib/mgcp_server.py b/openbsc/contrib/mgcp_server.py index 88963f31b..ae8a6e277 100755 --- a/openbsc/contrib/mgcp_server.py +++ b/openbsc/contrib/mgcp_server.py @@ -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) |