Age | Commit message (Collapse) | Author | Files | Lines |
|
RFC4666:
The DATA message MUST NOT be sent on stream 0
|
|
|
|
Make the code work for both ISUP and SCCP and let the address
handling still be part of the linkset/mtp3 code.
|
|
the opc/dpc for ISUP is currently wrong. The send/recv path
for actual SCCP data is not tested.
|
|
|
|
Implement a basic M3UA state machine on a SCTP connection.
|
|
For M3UA links we can't send SLTM messages but we can
assume that the link is fine. Add a flag that a link
can set in case SLTM should be skipped. The linkset will
then directly wait for routable DPCs and bring the
SCCP part up.
|
|
|
|
|
|
|
|
|
|
Thanks to mnhauke for the patch
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
The ASP has not been looking at this value at all, fix the byte
order. On the other hand my ASP doesn't care about this either.
|
|
Currently this is only true for the same connection.
sctp_m2ua.c:195 Two active SCTP conns with 1.2.3.4 on 0x9c21cf0, 0x9c21cf0
|
|
Make it possible to configure the transmit power. These settings
will be in effect immediately (there is no lock between the two
threads but it is a read only).
|
|
We get a trap for detected tones and then need to query them. Print
the detected characters for now and do not forward them yet.
|
|
When an endpoint is allocated we do not have enough resources to
connect it again and this situation is permanent as long as the
endpoint is connected.
Returning 502 might help some switches to release stale audio resources.
|
|
Playing tones should be printable ascii characters, begin by checking
for NULL (as it happened before) as the first illegal tone. This is
an attempt to make the API more robust and detect errors more early.
|
|
Because of the issue parsing the MGCP request a '\0' was added to
the queue. This lead to the dtmf scheduler believing that a play
was in progress while the playing code didn't play anything. This
lead to the queue to be stuck and nothing being played at all.
Return the number of tones that should be played and stop using
strlen on the tones.
|
|
Print the number of log messages that are queued in the error message.
|
|
The RQNT message might not contain a 'S:' line with the actual tone
to play. Instead of calling the callback with the 0 as tone just leave
early.
Example:
X: 6B9519B88F0
R: D/[0-9#*](N), G/ft, fxr/t38
Merged from the OpenBSC development tree
|
|
For some equipment it is the easiest to patch the assignment
complete message transported to the MSC. Add a VTY config to
enable this patching, create a testcase that tests that the
original message is truncated. The setting of the VTY option
has been manually tested. The entire system has not been end
to end tested.
|
|
|
|
We need to create a copy of the messages before we forward it
to MSC. This is already done in the other code path.
|
|
This code could be shared with the STP setup code.
|
|
This change was either never implemented or has been lost at
some point in time. Allow to pass SCCP messages un-modified through
the A-link.
|
|
|
|
* Patch all slots with the FR2 codec. This is the easiest way to
patch the entire message.
|
|
* Chosen Channel and Speech Version are both optional. Patch them
separately if they are present.
* Add testcase for the assignment request patching.
|
|
|
|
|
|
This is mostly a hack to allow IPA/SCCP routing to SCTP/M2UA/MTP3/SCCP
without going through the full stack. The proper way of doing this
requires another round of abstraction for the mtp_link_set class.
|
|
* Include stdlib.h before the snmp headers to have a free declaration
* Use sprintf(dest, "%s", str) to avoid format string attacks
* Avoid bogus assignment. This pattern was used for marking something
as unused in the past.
|
|
|
|
dtmf_state_played will re-set the playing state. Currently the
first tone was played and then no more tones were scheduled to
be played.
|
|
|
|
This is a hot fix to make CIC reading (and later status) work on
big endian machines. There might be a more elegant way to do it
and I will explore this later.
|
|
This way one can check the logs if this code path is hit. The
logging normally only occurs for the two messages we are interested
in. It doesn't make sense to reset with a range of 0 so the code
has been re-ordered.
|
|
GCC 3.x on PowerPC correctly highlights that the code is fishy.
Re-reading the RFC 3550 shows that we should subtract it and then
we are in the 16bit range. The probation and re-sync code is still
missing.
GCC:
mgcp/mgcp_network.c:200: warning: comparison is always true due to limited range of data type
|
|
Scan for two kind of reset messages in the ISUP messages. Forward
them to the mgcp_ss7.
|
|
|
|
This trunk name will be used to send RSIP for the trunk on ISUP
resets. Right now each app can be associated only one trunk.
|
|
For the ISUP/MGCP handling we will need the same code, extract it
from the msc_connection. For the reading code callback is introduced
that will pass the MGCP message to the higher layer.
|
|
The RSIP has morphed from a global reset, to a per trunk reset and now
it is possible to reset specific ranges on a trunk. This will be used by
the ISUP filter code in the STP.
For legacy range == -1 will be used. This will reset all endpoints
on the trunk. Use OSMO_MAX on endpoint and number of endpoints in case
number_endpoints is 0.
This code will now free everything from the endpoint to endpoint + range
including endpoint+range.
|
|
It is user defined where the signalling will take place, there might not
be any signalling at all.
|
|
In case the endpoint is allocated and the VTY is used to force it
to be freed use the realloc_cb to make sure that any resources
allocated to it will be freed. The mgcp_ss7 binary will then call
mgcp_ss7_endp_free to free audio encoder resources.
|
|
There were several changes in the upstream code. These include
statistics, DTMF/RQNT, changes in the parsing code and re-transmission
handling. The last item is the main reason to do the merge now.
|
|
Create a simple queue for pending DTMF tones, play them using the
MTN API, and then send the next tones once the playback is complete.
The callback and scheduling is done from the same context so no locking
needs to be done.
|
|
Introduce a callback for the request and forward the signalrequest
to the callback. This is not a full implementation of MGCP RQNT.
Manual merge and backport from OpenBSC.
|