Restored the old behaviour if there is more than one calling number in the
incoming SETUP message. A network provided number is reported as ANI.
(closes issue #17495)
Reported by: ibercom
Patches:
issue_17495_v1.4.11.2.patch uploaded by rmudgett (license 664)
issue_17495_v1.4.patch uploaded by rmudgett (license 664)
Tested by: ibercom
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1823 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The switch is sending the Connected Address ie (12) and there was no
handler for that ie. That is why the reporter was getting the "Missing
mandatory ie" message.
The simple fix is to just add the missing receive handler for that ie.
Since connected line (COLP) functionality has been added and this is just
an alternate for the Connected Number ie (0x4C), the handler was already
written. I also changed the ie name to what Q.931 calls it: Connected
Address.
Also some minor code clean up in q931_handle_ie() and ie2str().
JIRA SWP-1678
(closes issue #16915)
Reported by: kobaz
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1818 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The code was only processing the first ROSE component in the facility
message. I also updated rosetest.c to have a multiple component ROSE
message test.
(closes issue #17428)
Reported by: patrol-cz
Patches:
issue17428.patch uploaded by rmudgett (license 664)
Tested by: rmudgett, patrol-cz
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1785 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Added ability to send and receive ETSI ECT messages to eliminate tromboned
calls.
Added ETSI support to an existing API call to send ECT messages when the
upper level indicates to transfer specified calls.
The libpri API was extended to indicate to the upper layer that the far
end requests the transfer of the indicated calls.
Review: https://reviewboard.asterisk.org/r/521/
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1723 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Call Completion Supplementary Service (CCSS) added for the following
switch types: ETSI PTMP, ETSI PTP, Q.SIG.
Specifications:
ETS 300 359 CCBS for PTMP and PTP
ETS 301 065 CCNR for PTMP and PTP
ECMA-186 Call Completion for Q.SIG
Several support services were added to support CC:
Dummy Call Reference.
Q.931 REGISTER message.
Dynamic expansion of the number of available timers (up to 8192).
Enhanced facility message handling.
Current implementation limitations preclude the following:
CC service retention is not supported.
Q.SIG path reservation is not supported.
(closes issue #14292)
Reported by: tomaso
Tested by: rmudgett
JIRA SWP-1493
Review: https://reviewboard.asterisk.org/r/522/
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1714 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Revision -r1489 corrected a deviation from Q.931 Section 5.3.2. However,
this resulted in an unexpected behaviour change to the upper layer
(Asterisk).
This change restores the legacy hangup behaviour if the new API call is
not used. Use pri_hangup_fix_enable() to follow Q.931 Section 5.3.2 call
hangup better.
(closes issue #17104)
Reported by: shawkris
Tested by: rmudgett
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1688 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The DAHDI driver had a bug where an extra byte appeared on the end of
Q.931 messages. This garbage byte caused the message to be discarded with
the diagnostic "XXX Message longer than it should be?? XXX". The Q.931
message will no longer be discarded if there were earlier ie's in the
message.
This patch also addresses the potential problem of reading beyond the
buffer when trying to parse the garbage data.
Thanks to roeften for the base patch.
(closes issue #14378)
Reported by: timking
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1674 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Since the TE side can pick CR values independently, the TE CR needs to be
qualified by TEI to distinguish CR values from other devices. Without
doing this, multiple phones on the BRI line will have intermittent call
failures.
JIRA LIBPRI-30
Also eliminated some wierdness in q931_status() and several places where
it is called.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1630 2fbb986a-6c06-0410-b554-c9c1f0a7f128
1) Make PRI_MASTER() no longer check for a NULL parameter. It is the
caller's responsibility. Not many callers could have passed a NULL
without crashing before or after anyway.
2) Replace calls to q931_is_ptmp() with PTMP_MODE(). They were
equivalent.
3) Made the following boolean config options bit fields: sendfacility,
overlapdial, chan_mapping_logical, and service_message_support.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1534 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Q.931 Section 5.3.2 a) says we send a RELEASE_COMPLETE to reject a call
SETUP if we have not already sent a message in response to the SETUP
message.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1489 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Only the NT PTMP side can send Q.931 broadcast messages.
Also removed an inaccurate comment in Q.921 and made
q921_mdl_handle_error_callback() call the correct struct pri free
function.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1426 2fbb986a-6c06-0410-b554-c9c1f0a7f128
* Some ROSE message processing depends on the presence of other ies. The
DivertingLegInformation1, and 3 messages will be used as the default
connected line number if the connected number ie is not present. The
redirecting number ie is used as a default to the redirecting number in
the DivertingLegInformation2 message if the ROSE message does not contain
it and the redirecting number ie is present.
* Some ROSE message processing depends upon other ie values. The
StatusRequest, CCBS-T-Call, and CcRingout messages collectively need the
BC, HLC, LLC, called number, called subaddress, calling number, and
calling subaddress ie information to be available.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1345 2fbb986a-6c06-0410-b554-c9c1f0a7f128
1) No sent messages will remain in the APDU queue unless they have an
active timer to remove them. The dummy call reference call and global
call reference call structures will not act like a memory leak to sent
messages.
2) The new T-RESPONSE timer will be the generic response guard if the
standards do not otherwise specify a timer for a message response.
3) The callback will be called. If it is called because of a response
message, then the callback has an opportunity to indicate if more
responses are expected.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1322 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The facility ie queue needs to remove facilities that have been sent.
Otherwise, the queue just grows until the call is terminated. AOC
messages can clog the queue during a long call and the dummy call
reference may never be deleted.
Also removed unneeded elements of struct apdu_event. The callback
function was not a good idea since many facility messages do not have
responses and the callback would prevents removal of events from the list.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1283 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Fixes problem where PTMP NT mode responds erroneously to a FACILITY
message from a phone on the dummy call reference. LibPRI behaved as if
the dummy call reference were an invalid call reference and proceeded to
respond on the global call reference.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1275 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The caller would not get a busy indication when calling a busy phone.
Timer T303 is not supposed to be stopped when RELEASE_COMPLETE received.
When T303 expires we will now report the last clearing cause code to the
caller if we received one.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1255 2fbb986a-6c06-0410-b554-c9c1f0a7f128
* Added support for BRI PTMP NT mode. (Overlap dialing NT -> TE not supported.)
* Added handling of received HOLD/RETRIEVE messages and the optional ability
to transfer a held call on disconnect similar to an analog phone.
* Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
Will reroute/deflect an outgoing call when receive the message.
Can use the DAHDISendCallreroutingFacility to send the message for the
supported switches.
* Added ability to send/receive keypad digits in the SETUP message.
Send keypad digits in SETUP message: Dial(DAHDI/g1[/K<keypad_digits>][/extension])
Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
(closes issue #15048)
Tested by: rmudgett, mattf
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1242 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The Telecom Specs in NZ suggests that SUB ADDRESS is always on, so doing
"desk to desk" between offices each with an asterisk box over the ISDN
should then be possible, without a whole load of DDI numbers required.
(closes issue #15604)
Reported by: alecdavis
Patches:
libpri_subaddr_trunk.diff11.txt uploaded by alecdavis (license 585)
Some minor modificatons were made.
Tested by: alecdavis, rmudgett
Review: https://reviewboard.asterisk.org/r/406/
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1230 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Sending a STATUS message failed to include the call state ie for some
reason. We will now always send a call state ie when a message ie list
includes one.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1220 2fbb986a-6c06-0410-b554-c9c1f0a7f128
* Removed unnecessary Q931_IE_CONNECTED_NUM ie from setup_ack_ies[].
* Added internal state Q931_CALL_STATE_NOT_SET to Q.931 state enum.
* Made q931_is_ptmp() take a const pointer.
* pri_facility.c: Some preparations for subaddressing.
* pri.c: Eliminate use of a magic number.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1177 2fbb986a-6c06-0410-b554-c9c1f0a7f128
1) Outgoing messages have the facility ie ASN.1 decoded and dumped when the
ie is added to the message. The whole message is then dumped.
2) Incoming messages have the facility ie ASN.1 decoded and dumped when the
ie is processed. The whole message has already been dumped.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1169 2fbb986a-6c06-0410-b554-c9c1f0a7f128
The problem is that once a call reference was associated with a particular D
channel, it always was. This created an issue with NFAS when the secondary D
channel became active as the messages were still being sent on the non-active
D channel.
(closes issue #14959)
Reported by: remiq
Patches:
bug14959.patch uploaded by jpeeler (license 325)
Tested by: remiq
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1120 2fbb986a-6c06-0410-b554-c9c1f0a7f128
This set of changes integrates SERVICE message support for the
'national' switchtype. The 'national' switchtype uses the 0x43
protocol discriminator. The 'national' SERVICE/SERVICE ACKNOWLEDGE
and AT&T SERVICE/SERVICE ACKNOWLEDGE message values are opposite
of each other. This is handled by first determining which
protocol discriminator is in use, then responding with the appropriate
SERVICE ACKNOWLEDGE value. AT&T SERVICE messages use the
0x3 protocol discriminator.
(closes issue #15803)
Reported by: dhubbard
Review: https://reviewboard.asterisk.org/r/347/
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1072 2fbb986a-6c06-0410-b554-c9c1f0a7f128
Also make sure that service maintenance messages have the channel id
parameters reinitialized for each message since they are sent over the
global call reference.
git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1051 2fbb986a-6c06-0410-b554-c9c1f0a7f128