Commit Graph

59 Commits

Author SHA1 Message Date
Neels Hofmeyr dee499f7a7 rather inject 5 RTP frames instead of 1
Change-Id: I9af656cc28a54d3c1274875ebd5326ddd2fb8f6e
2020-03-06 01:51:41 +01:00
Neels Hofmeyr 41504a63af calls(): rather connect adjacent MSISDNs
Change-Id: I4137cccc50d4706386b0b133699d407a490a9e40
2020-03-05 23:09:42 +01:00
Neels Hofmeyr 4f4cf12745 mncc_test: add calls() to initiate series of calls 2020-03-05 13:45:10 +01:00
Neels Hofmeyr 24bbaf9e36 add a manual call-release function 2020-03-05 13:45:10 +01:00
Neels Hofmeyr 227209fe93 call gapk to send an RTP stream WIP 2020-03-05 13:45:10 +01:00
Oliver Smith d2e3162c22 mncc_test.py: don't start calls automatically 2020-03-05 13:45:10 +01:00
Oliver Smith a000551a40 HACK: Bump MNCC_SOCK_VERSION to 6
Update mncc.h, but to not have to figure out ctypes generation and still be
MNCC v6 compatible, simply add a single SDP byte of '\0' to sent buffers, so
that an MNCC v6 MSC doesn't complain about a too short MNCC message.

Sending no SDP is compliant, and sending a single '\0' is the specified proper
way to do so, but we're achieving it in a hacky way.

To accept incoming MNCC v6: allow trailing data

Related: osmo-sip-connector I522ce7f206932a816a64f03d916799c3215bb8c7
2020-03-05 13:44:33 +01:00
Max b93472b534 Add git-review config
Change-Id: I80c69ce43b6c0ad36f709340c8184620caf1cbf0
2019-03-12 17:06:24 +01:00
Vadim Yanitskiy af9a227a89 *.py: use generic logging framework instead of print()
Change-Id: I025ddae64e41319abac8e2cd2e266db83aea4a7b
2018-09-30 17:21:41 +07:00
Vadim Yanitskiy 8b5c864f28 manual_test_server.py: drop redundant print() calls
Change-Id: Id9c8fa9e65837822002b68d10af9c2eacb818aac
2018-09-30 17:21:41 +07:00
Vadim Yanitskiy a275d7a49d *.py: cosmetic: tweak the global logging format
Printing log level, file name, and line number together with a
log message is the common practice in Osmocom projects that
facilitates debugging and development.

Change-Id: I80cd7cdfa41ae7e70a1890d88c8b2f7357a500af
2018-09-30 17:21:41 +07:00
Vadim Yanitskiy 1e3f0aaf6b mncc_sock.py: throw / raise exceptions from MnccSocket
Calling sys.exit() from MnccSocket's constructor could lead to
a situation when the main thread becomes "dead", while its child
threads are still working. Let's throw the exceptions towards
the caller, so it would be possible to handle them there.

Change-Id: I485eb86c69e74693eeae89723de27e376585f1da
2018-09-30 15:23:12 +07:00
Vadim Yanitskiy c43f321e6e mncc_sock.py: distinguish traffic frames
Change-Id: I996513e433bb57f12a4030391697f4e87e6ff938
2018-09-29 22:33:20 +07:00
Vadim Yanitskiy 8a8b422dcf mncc_sock.py: simplify msg_type matching
Change-Id: I0d7d988e7d1bcfd9cf5cd319fd9da0f4f65a8e5d
2018-09-29 22:23:01 +07:00
Vadim Yanitskiy 61a1ecc988 mncc_sock.py: share common send() / receive() calls
Change-Id: I871c72c8e3392a1be76e0126a24b3bc9a787113d
2018-09-29 21:55:18 +07:00
Vadim Yanitskiy ada97f1c5a mncc_sock.py: parse and match MNCC_SOCKET_HELLO message
Change-Id: If6c3ca37a83db1d4ae75796f7be687601b159136
2018-09-29 21:55:18 +07:00
Vadim Yanitskiy 022be433ad *.py: use proper '#!/usr/bin/env' shebang
Using hard-coded paths in shebang is a bad idea, because on different
systems Python interpreter can be installed in different places. See:

https://mail.python.org/pipermail/tutor/2007-June/054816.html

Change-Id: Ib729ece0c95254dc2b235f90eb731681df955bd1
2018-09-29 21:55:16 +07:00
Stefan Sperling 354904a0a6 recommend stock Debian/Ubuntu package for fysom
fysom is now available as a regular Debian/Ubuntu package
so there is no need anymore to install it via pip:
  https://packages.debian.org/stretch/python-fysom
  https://packages.ubuntu.com/bionic/python-fysom

Change-Id: I59e3b93c1d3f849f14dcb2344f6f033312331884
2018-08-09 12:01:51 +02:00
Gerard Pinto 983231a70d Bearer capability not provided during MO call using mncc-python, which results in GSM IE error (96) invalid mandatory information sent by Network -> MS (mncc-python)
Verified this error by GSMTAP using mncc-python interface OsmocomBB to network
Proposed Changes:
In case of MO call (_onmncc_setup_req) caller needs to provide bearer_cap speech version
Added mncc.bearer_cap in mncc_sock.py based on codecs = GSM48.AllCodecs
Added new field mncc.MNCC_F_BEARER_CAP in mncc.MNCC_SETUP_REQ, when call is initiated (MO) from MS -> network

Change-Id: If77851b86111d62d82221a886ed2391179080cca
2017-06-04 21:04:56 -07:00
Holger Hans Peter Freyther ce184f83f0 test: Add a manual test to simulate DTMF handling in osmo-sip-connector
Add a manul test to the contrib folder that helped and can help during
the development of osmo-sip-connector or similar software. This avoids
having to create a separate mncc module.

It can be started like:

$ PYTHONPATH=$PWD/../ python manual_test_server.py

Change-Id: I7f62efbc62455e6fcb1f091afb5fa120099834f0
2017-04-29 14:49:36 +02:00
Holger Hans Peter Freyther 03980b4e31 mncc: Make it possible to build a MNCC server for testing
For manual testing the osmo-sip-connector it is nice to run a custom
MNCC server to mock certain behavior. Refactor the socket class to
share code between client/server.

Change-Id: I8387fe1687557c6a1a26ff1e0cc9dbff3087aa82
2017-04-29 14:12:31 +02:00
Holger Hans Peter Freyther 08207d9e6f mncc_sock.py: Fix typo and say connecting
We don't have a connection yet, so let's say this meant connecting.

Change-Id: Iba0423add3ae4d6920fed74800b0c2b298dda501
2017-03-05 17:42:01 +01:00
Harald Welte 19f678d259 some README clarifications, including required python modules 2015-12-12 23:04:34 +01:00
Harald Welte 031b9c9006 add smpp_test to generate SMS load via SMPP interface
It's not really related to MNCC, but in lack of a better suitable
repository, I'll commit it here for the time being.
2015-12-05 22:41:57 +01:00
Harald Welte fcc3baaa2d gsm_call_fsm: Less debug printf's 2015-12-05 16:13:05 +01:00
Harald Welte 1b26694bca Terminate CallConnector when both GsmCallFsm enter NULL state again 2015-12-05 16:12:26 +01:00
Harald Welte e5d8b99fe7 GsmCallFsm: Print current state in __str__ 2015-12-05 14:04:33 +01:00
Harald Welte 5010316fd2 GsmCallFsm: Initialize calling/called during constructor 2015-12-05 13:57:51 +01:00
Harald Welte 6ae54d430d GsmCallFsm: Handle DTMF and HOLD requests from phones
we don't want the FSM to terminate in case such requests are received.
2015-12-05 13:51:43 +01:00
Harald Welte 8a6dce0026 GsmCallFsm: Implement __str__() and use it 2015-12-05 13:51:43 +01:00
Harald Welte 5b283e8942 gcm_call_fsm: Allow user to specify which codec(s) are to be used
The user can submit a list of permitted codecs for a GsmCallFsm or
GsmCallConnector.  This list is ordered by priority (highest first),
and the first matching codec is chosen.

TODO: Proper error handling in case no matching codec is found
2015-12-05 13:51:43 +01:00
Harald Welte a5fce60121 gsm_call_fsm: Implement classic MNCC_BRIDGE mode
In the classic MNCC_BRIDGE mode we ask the MSC to bridge the two
traffic channels itself.  This works for E1 as well as for RTP
BTSs', and even accross mixed E1 and RTP environments.
2015-12-05 13:51:43 +01:00
Harald Welte 8ebb6355ef mncc.{h,py}: Add a gsm_mncc_bridge struct
this struct doesn't yet exist in upstream, but it should.
2015-12-05 13:51:37 +01:00
Harald Welte 474d83e21a gsm_call_fsm: Add get_callref method to GsmCallFsm
... and obtain the call references into the GsmCallConnector
2015-12-03 13:54:40 +01:00
Harald Welte 79b7947191 typo fix 2015-12-02 00:51:11 +01:00
Harald Welte e47c3eee45 add README 2015-12-02 00:46:46 +01:00
Harald Welte 47ff791075 add license headers 2015-12-02 00:23:09 +01:00
Harald Welte 7e94f0d22f rename mncc_test2.py to mncc_test.py 2015-12-02 00:18:28 +01:00
Harald Welte 74cd98fcf4 mncc_test2.py: Start 14 call legs (1TRX TCH/H config) 2015-12-02 00:17:50 +01:00
Harald Welte 3d058cf657 gsm_call_fsm: Connect the RTP streams of the two call legs 2015-12-01 23:53:45 +01:00
Harald Welte 5b4c297ad9 mncc_test2: more useful debug output 2015-12-01 23:04:53 +01:00
Harald Welte 20523c7fd2 add mncc_rtp_msg() class for RTP messages on MNCC interface 2015-12-01 23:04:20 +01:00
Harald Welte 4f3762e793 gsm_call_fsm: transition from CONNECT_REQUEST state into ACTIVE 2015-12-01 22:42:48 +01:00
Harald Welte 06de155ee5 gsm_call_fsm: Gracefully handle MNCC_DISC_IND and send MNCC_REL_REQ 2015-12-01 22:25:21 +01:00
Harald Welte fed3e0400f gsm_call_fsm: print string representation of mncc_msg 2015-12-01 22:21:29 +01:00
Harald Welte e69a1b8356 gsm_call_fsm: Fix typo in handling of MNCC_ALERT_IND 2015-12-01 22:21:08 +01:00
Harald Welte 6597a89759 gsm_call_fsm: accept MNCC_REL_IND in every state, contrary to spec 2015-12-01 22:20:43 +01:00
Harald Welte 1d417f8666 gsm_call_fsm: fix transmission of MNCC_SETUP_COMPL_REQ 2015-12-01 22:20:20 +01:00
Harald Welte 3703441150 mncc_msg(): Add more meaningful string representation 2015-12-01 22:19:56 +01:00
Harald Welte 9e7356a1a6 provide connect_call() convenience wrapper 2015-12-01 21:47:04 +01:00