Commit Graph

74 Commits

Author SHA1 Message Date
Harald Welte 498dc6bcc7 processCalledNo: Fix typo / copy+paste error
Surely, the treatment of the *called* party type/plan should
not depend on the *calling* party type/plan.
2023-12-03 11:41:46 +01:00
Manawyrm 6fa07fb632 Add new clearmode codec support for data calls
This new codec will get handled like RFC4040 in yrtpchan, ysipchan
and will just be handled as alaw audio in zapcard/DAHDI.

The zapcard code will set the udi bearer cap to any calls with the
clearmode format (which would get sent via SIP/SDP).
2023-09-19 18:29:40 +02:00
Harald Welte 1bad0f5194 q931: If we're the network, channelID in ALERTING/CALL_PROC/CONNECT is mandatory
The user may suggest a given channel in the SETUP, but it's not legal
for the network to return a non-mandatory ChannelID.

See Q.931 Section 5.1.2 (B-channel selection - Originating):

The selected B-channel is indicated in the Channel identification information
element coded as "channel is indicated, no acceptable alternative" in the first
message returned by the network in response to the SETUP message (i.e. a SETUP
ACKNOWLEDGE or CALL PROCEEDING message)

In an earlier commit I had only fixed SETUP ACK, but missed that this is
a more general problem that needs addressing in whatever is the first
message containing a channelID yate sends in response to the SETUP.
2023-09-19 18:29:40 +02:00
Harald Welte f727a1dd3a q931: If we're the network, channelID in SETUP ACK is mandatory
The user may suggest a given channel in the SETUP, but it's not legal
for the network to return a non-mandatory ChannelID.

See Q.931 Section 5.1.2 (B-channel selection - Originating):

The selected B-channel is indicated in the Channel identification information
element coded as "channel is indicated, no acceptable alternative" in the first
message returned by the network in response to the SETUP message (i.e. a SETUP
ACKNOWLEDGE or CALL PROCEEDING message)
2023-09-19 18:29:40 +02:00
Harald Welte 3020ff51ed preserve transfer-capability in Q.931 -> Q.931 calls
This is important so udi/rdi doesn't get converted to speech.
2023-09-19 18:29:40 +02:00
Harald Welte 6f336a336a q931: sendSetupAck: Don't encode a BRI channel selection in PRI
If yate is operating in the 'network' role of a PRI interface,
it must send a valid ChannelID InformationElement in the SETUP ACK.

However, current yate code is encoding the channel selection field
of said information element wrong, as it unconditionally looks up
the s_dict_channelIDSelect_BRI (instead of _PRI).

This fixes a regression introduced in 2009 in the following commit:

commit 05b717e0b9
Author: paulc <paulc@acf43c95-373e-0410-b603-e72c3f656dc1>
Date:   Mon Mar 2 18:51:30 2009 +0000

ISDN BRI support, most Andrei's (andrei@null.ro) work.
Fixes and new features throughout the signalling engine.
it-svn-id: http://yate.null.ro/svn/yate/trunk@2505 acf43c95-373e-0410-b603-e72c3f656dc1
2023-09-19 18:29:40 +02:00
Ioana Stanciu c56216f5a8 Updated copyright notices. 2023-05-23 17:01:06 +03:00
paulc d56cecb40e Added copyright notices to sources and scripts missing them.
Updated copyright notices for 2014.
Fixed end of lines in many files.


git-svn-id: http://voip.null.ro/svn/yate@5755 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-05 11:42:17 +00:00
paulc 18e10bfd69 Changed license terms in each source file to reference an external file.
git-svn-id: http://voip.null.ro/svn/yate@5609 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-06 13:38:10 +00:00
andrei 33ba0e29fc Fixed the way ysig components are initialized.
git-svn-id: http://voip.null.ro/svn/yate@5336 acf43c95-373e-0410-b603-e72c3f656dc1
2012-11-22 08:50:51 +00:00
paulc 0d0e5f6044 Honor the requested ISDN circuit code if possible before trying other circuits.
Added the possibility of setting the Channel Exclusive flag from configuration or routing.


git-svn-id: http://voip.null.ro/svn/yate@5294 acf43c95-373e-0410-b603-e72c3f656dc1
2012-10-15 11:50:33 +00:00
paulc 1acbc5ba04 Added default type in SignallingComponent constructor.
git-svn-id: http://voip.null.ro/svn/yate@5099 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-07 10:27:45 +00:00
paulc ee9229a986 Added ability to limit how much to try to acquire a non-critical mutex.
This should reduce contention during high load and the chances to deadlock.


git-svn-id: http://voip.null.ro/svn/yate@4950 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-02 16:01:45 +00:00
paulc bcee31140c Compute how long took for ISUP and ISDN circuits to connect, log a message if time is excessive.
git-svn-id: http://voip.null.ro/svn/yate@4436 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-04 13:18:50 +00:00
paulc cba5cf2e63 Optimized const String usage in the ysig library.
git-svn-id: http://voip.null.ro/svn/yate@4428 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-03 14:25:17 +00:00
paulc 934ba9df5c Report textual status of call controllers (trunks).
git-svn-id: http://voip.null.ro/svn/yate@4163 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-07 14:57:07 +00:00
paulc 109c049bf8 Constified all TokenDicts in the ysig library.
git-svn-id: http://voip.null.ro/svn/yate@4121 acf43c95-373e-0410-b603-e72c3f656dc1
2011-02-21 11:56:06 +00:00
oana 55813dcbe3 Added SNMP support.
git-svn-id: http://voip.null.ro/svn/yate@3776 acf43c95-373e-0410-b603-e72c3f656dc1
2010-11-03 16:27:30 +00:00
marian 78981fa5dc Drop temporary ISDN call lock before deleting a sent event: avoid stray pointer.
git-svn-id: http://voip.null.ro/svn/yate@3653 acf43c95-373e-0410-b603-e72c3f656dc1
2010-09-15 07:56:53 +00:00
marian d236762fc1 Support receiving overlapped dialing on ISUP.
Send extra Called Party Number digits in a SAM message.
The overlapped dialing script accepts an initial number.
Merged branch paulc/pstn -c 3485


git-svn-id: http://voip.null.ro/svn/yate@3493 acf43c95-373e-0410-b603-e72c3f656dc1
2010-08-21 18:34:01 +00:00
paulc 5770afed26 Made more visible (but still only when compiled for debugging) the periodic circuit restarts.
git-svn-id: http://voip.null.ro/svn/yate@3422 acf43c95-373e-0410-b603-e72c3f656dc1
2010-07-09 09:29:22 +00:00
paulc 551992e4f7 Use a variable to keep the status of early media.
Add the inband indication to Alerting too, not only to Progress.


git-svn-id: http://voip.null.ro/svn/yate@3415 acf43c95-373e-0410-b603-e72c3f656dc1
2010-07-02 15:42:33 +00:00
paulc 716a39b488 Deal better with early media information in ISDN (in-band-info in Progress and Alerting).
git-svn-id: http://voip.null.ro/svn/yate@3412 acf43c95-373e-0410-b603-e72c3f656dc1
2010-07-01 15:24:31 +00:00
paulc d49b070451 Added a "reset" control command to fast reset ISUP circuits.
Default reset interval for both ISUP and ISDN is 300s with 60s minimum.


git-svn-id: http://voip.null.ro/svn/yate@3404 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-25 14:48:29 +00:00
paulc 494e0db1fb Fixed ISDN PRI circuit allocation bugs introduced by Rev. 2505 (BRI support).
git-svn-id: http://voip.null.ro/svn/yate@2913 acf43c95-373e-0410-b603-e72c3f656dc1
2009-11-09 21:38:16 +00:00
paulc 78062c0dab Copy configuration subparameters to the child components.
git-svn-id: http://voip.null.ro/svn/yate@2812 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-31 14:43:22 +00:00
paulc fe1527fe74 Made some dangerous constructors explicit, fix potential problems exposed by this.
git-svn-id: http://voip.null.ro/svn/yate@2705 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-12 15:15:36 +00:00
paulc a46886c059 Major rewrite of signalling components creation and configuration.
The creation of subcomponents is offloaded to each component to allow for proper building of the component stack.


git-svn-id: http://voip.null.ro/svn/yate@2650 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-26 13:43:24 +00:00
paulc 79d54cfd65 Made CPE number filter act as prefix, not exact match. Documented.
git-svn-id: http://voip.null.ro/svn/yate@2609 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 07:27:06 +00:00
paulc ec08dd849a ISDN BRI support, most Andrei's (andrei@null.ro) work.
Fixes and new features throughout the signalling engine.


git-svn-id: http://voip.null.ro/svn/yate@2505 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-02 18:51:30 +00:00
paulc 501f0bef0e Accept a comma separated list of links to try to send the call.
Detect early a congestion or network failure and attempt next link.


git-svn-id: http://voip.null.ro/svn/yate@2368 acf43c95-373e-0410-b603-e72c3f656dc1
2008-11-26 15:20:15 +00:00
paulc c1efca5336 Cosmetic: fixed typo in comments and debug messages.
git-svn-id: http://voip.null.ro/svn/yate@2335 acf43c95-373e-0410-b603-e72c3f656dc1
2008-11-12 16:48:31 +00:00
paulc a848a19496 Removed unnecessary ISDN layer 2 locks in monitor methods called from layer 2.
git-svn-id: http://voip.null.ro/svn/yate@2334 acf43c95-373e-0410-b603-e72c3f656dc1
2008-11-12 16:41:24 +00:00
paulc cecc09a1c0 Fixed initialization of Q931 channel timers.
git-svn-id: http://voip.null.ro/svn/yate@2269 acf43c95-373e-0410-b603-e72c3f656dc1
2008-10-20 11:05:48 +00:00
paulc 31fb274ec9 Handle conflict when call is disconnected from both sides.
git-svn-id: http://voip.null.ro/svn/yate@2266 acf43c95-373e-0410-b603-e72c3f656dc1
2008-10-19 13:55:55 +00:00
paulc 2e37051b96 Q.931 status reports now have local network as location.
git-svn-id: http://voip.null.ro/svn/yate@2247 acf43c95-373e-0410-b603-e72c3f656dc1
2008-10-01 12:57:42 +00:00
paulc bad11a328c Recover from a Q.931 STATUS when call is established.
git-svn-id: http://voip.null.ro/svn/yate@2246 acf43c95-373e-0410-b603-e72c3f656dc1
2008-10-01 12:39:28 +00:00
paulc f547635cec Fixed generation of mask for wrapping around Q.931 call identifiers.
git-svn-id: http://voip.null.ro/svn/yate@2225 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-19 17:41:43 +00:00
paulc 9172c47da2 Always decode call state names, it's usefull and not expensive.
git-svn-id: http://voip.null.ro/svn/yate@2222 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-19 15:25:53 +00:00
paulc e3c8137dbf Unified dump file parameter name (layer2/layer3) between ISDN and SS7.
File type can be modified by extension (.hex/.txt/.raw)
Documented dump files in ysigchan.conf


git-svn-id: http://voip.null.ro/svn/yate@2211 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-18 14:18:25 +00:00
paulc c60f1b10fb Implemented generic signalling component control mechanism.
Protocol data dumping capability for several L2 and L3 components.
Data dumpers can be set at runtime from rmanager command with completion.


git-svn-id: http://voip.null.ro/svn/yate@2210 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-18 14:05:26 +00:00
paulc 58abae7223 Added still incomplete support for capturing ISDN data at runtime.
git-svn-id: http://voip.null.ro/svn/yate@2205 acf43c95-373e-0410-b603-e72c3f656dc1
2008-09-16 19:28:32 +00:00
marian 6cd6804027 ISDN is now using the SignallingUtils' methods to encode/decode Cause IE.
git-svn-id: http://voip.null.ro/svn/yate@1888 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-10 11:00:00 +00:00
marian dd6f3b1095 Fixed bug: now the ISDN call is using a destroyed flag instead of Null state to destroy itself.
git-svn-id: http://voip.null.ro/svn/yate@1887 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-10 09:10:46 +00:00
marian 99442bb90a Use TelEngine::destruct() instead of deref(). Added more debug.
git-svn-id: http://voip.null.ro/svn/yate@1886 acf43c95-373e-0410-b603-e72c3f656dc1
2008-04-10 08:46:27 +00:00
marian e37417dbdb Avoid double call release: may lead to crash.
git-svn-id: http://voip.null.ro/svn/yate@1858 acf43c95-373e-0410-b603-e72c3f656dc1
2008-03-27 14:42:01 +00:00
marian b9f7d88aa8 Fixed Restart IE encoding.
git-svn-id: http://voip.null.ro/svn/yate@1854 acf43c95-373e-0410-b603-e72c3f656dc1
2008-03-27 12:31:14 +00:00
marian ed630257bc Fixed channel id check when processing restart requests.
git-svn-id: http://voip.null.ro/svn/yate@1853 acf43c95-373e-0410-b603-e72c3f656dc1
2008-03-27 12:04:07 +00:00
marian b13bb6b601 Fixed channel id check when receiving restart requests.
git-svn-id: http://voip.null.ro/svn/yate@1852 acf43c95-373e-0410-b603-e72c3f656dc1
2008-03-27 12:00:49 +00:00
marian 82cd1fc27a Removed span's D-channel flag. Use the first span to process ISDN restart requests for single interfaces.
git-svn-id: http://voip.null.ro/svn/yate@1851 acf43c95-373e-0410-b603-e72c3f656dc1
2008-03-27 10:35:36 +00:00