[asterisk-ss7] libss7 and IAM/ACM

Barry O'Donovan barry at opensolutions.ie
Tue Jun 17 11:12:43 CDT 2008


Folks,

I have an issue with libss7 which I'm hoping you may be able to assist 
with/suggest where I might alter the code to fix.


Scenario
=========

We are using an Asterisk box with libss7 to make 'intelligent' routing 
decisions with a Nortel DMS100. The DMS sends traffic to the Asterisk box 
which does a look up on the number. 

Under certain predefined circumstances, it will accept the call and under 
others it will reject with cause code 34 (congestion).

The DMS100 has a 'reroute on congestion' functionality which allows the 
Asterisk box to only accept the traffic it wants.

For testing purposes, I have the following simple dialplan:

[ss7]

exten => 0766016007,1,Hangup(34)


So you can see that for testing we do an immediate Hangup(). This works with 
chan_ss7 but we'd prefer to use libss7.


Problem
=======

libss7 sends an ACM packet after it receives the IAM. The ACM means that a 
channel has been reserved for the call but we are trying to indicate 
conjestion. But, also, in any application such as operating a SS7 to VoIP 
gateway, we need to verify the available of channels/bandwidth/etc before 
sending the ACM.

In this particular case, once the ACM is sent, the DMS cannot implement 
reroute on conjestion.

I have placed a ss7 debug below to help show the problem.

Is it at all possible to stop/delay the sending of the ACM until an 
appropriate time?


Can anyone suggest:

a) how I might overcome this issue? 
b) and/or changes to the code to correct this?
c) and/or any other advice?


Thanks a million,
Barry O'Donovan



-------------- next part --------------
[Jun 17 17:11:33] VERBOSE[24300] logger.c: Len = 50 [ 8d 8a 2f 85 01 00 6c fe 3f 00 01 00 20 01 0a 00 02 0a 08 83 90 70 66 10 06 70 0f 0a 07 03 10 70 66 10 06 00 31 02 00 00 39 02 31 c0 1d 03 80 90 a3 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c: FSN: 10 FIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: BSN: 13 BIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: <[0] MSU
[Jun 17 17:11:33] VERBOSE[24300] logger.c: [ 8d 8a 2f ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      Network Indicator: 2 Priority: 0 User Part: ISUP (5)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ 85 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      OPC 14768 DPC 1 SLS 15
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ 01 00 6c fe ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              CIC: 63
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 3f 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Message Type: IAM
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 01 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              --FIXED LENGTH PARMS[4]--
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Nature of Connection Indicator:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Satellites in connection: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Continuity Check: Check not required (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Outgoing half echo control device: not included (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Forward Call Indicators:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Nat/Intl Call Ind: call to be treated as a national call (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      End to End Method Ind: no end-to-end method(s) available (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Interworking Ind: no interworking encountered (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      End to End Info Ind: no end-to-end information available (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      ISDN User Part Ind: ISDN user part used all the way (1)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      ISDN User Part Pref Ind: ISDN user part preferred all the way (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      ISDN Access Ind: originating access ISDN (1)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      SCCP Method Ind: no indication (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 20 01 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Calling Party's Category:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Category: Ordinary calling subscriber (10)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 0a ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Transmission Medium Requirements:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Speech (0)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              --VARIABLE LENGTH PARMS[1]--
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Called Party Number:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Nature of address: 3
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      NI: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Numbering plan: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Address signals: 0766016007#
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 08 83 90 70 66 10 06 70 0f ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              --OPTIONAL PARMS--
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Calling Party Number:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Nature of address: 3
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      NI: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Numbering plan: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Presentation: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Screening: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Address signals: 0766016000
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 0a 07 03 10 70 66 10 06 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Propagation Delay Counter:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Delay: 0ms
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 31 02 00 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Parameter Compatibility Information:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 39 02 31 c0 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              User Service Information:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 1d 03 80 90 a3 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:
[Jun 17 17:11:33] VERBOSE[24300] logger.c: Unhandled optional parameter 0x31 'Propagation Delay Counter'
[Jun 17 17:11:33] VERBOSE[24300] logger.c: [[Jun 17 17:11:33] VERBOSE[24300] logger.c: 0x0 [Jun 17 17:11:33] VERBOSE[24300] logger.c: 0x0 [Jun 17 17:11:33] VERBOSE[24300] logger.c: ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c: Unhandled optional parameter 0x39 'Parameter Compatibility Information'
[Jun 17 17:11:33] VERBOSE[24300] logger.c: [[Jun 17 17:11:33] VERBOSE[24300] logger.c: 0x31 [Jun 17 17:11:33] VERBOSE[24300] logger.c: 0xc0 [Jun 17 17:11:33] VERBOSE[24300] logger.c: ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:     -- Accepting call to '0766016007' on CIC 63
[Jun 17 17:11:33] VERBOSE[24300] logger.c:     -- Executing [0766016007 at ss7:1] Hangup("Zap/62-1", "34") in new stack
[Jun 17 17:11:33] VERBOSE[24300] logger.c:   == Spawn extension (ss7, 0766016007, 1) exited non-zero on 'Zap/62-1'
[Jun 17 17:11:33] VERBOSE[24300] logger.c:     -- Hungup 'Zap/62-1'
[Jun 17 17:11:33] VERBOSE[24300] logger.c: Len = 14 [ 8a 8e 0b 85 b0 79 00 f0 3f 00 06 40 14 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c: FSN: 14 FIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: BSN: 10 BIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: >[0] MSU
[Jun 17 17:11:33] VERBOSE[24300] logger.c: [ 8a 8e 0b ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      Network Indicator: 2 Priority: 0 User Part: ISUP (5)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ 85 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      OPC 1 DPC 14768 SLS 15
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ b0 79 00 f0 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              CIC: 63
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 3f 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Message Type: ACM
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 06 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              --FIXED LENGTH PARMS[1]--
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Backward Call Indicator:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Charge indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Called party's status indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Called party's category indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      End to End method indicator: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Interworking indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      End to End information indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      ISDN user part indicator: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Holding indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      ISDN access indicator: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Echo control device indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      SCCP method indicator: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 40 14 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:
[Jun 17 17:11:33] VERBOSE[24300] logger.c: Len = 16 [ 8a 8f 0d 85 b0 79 00 f0 3f 00 0c 02 00 02 81 a2 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c: FSN: 15 FIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: BSN: 10 BIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: >[0] MSU
[Jun 17 17:11:33] VERBOSE[24300] logger.c: [ 8a 8f 0d ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      Network Indicator: 2 Priority: 0 User Part: ISUP (5)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ 85 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      OPC 1 DPC 14768 SLS 15
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ b0 79 00 f0 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              CIC: 63
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 3f 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Message Type: REL
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 0c ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              --VARIABLE LENGTH PARMS[1]--
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Cause Indicator:
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Coding Standard: 0
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Location: 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Cause Class: 2
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Cause Subclass: 2
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      Cause: No circuit/channel available (34)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:                      [ 02 81 a2 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:
[Jun 17 17:11:33] VERBOSE[24300] logger.c: Len = 12 [ 8f 8b 09 85 01 00 6c fe 3f 00 10 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c: FSN: 11 FIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: BSN: 15 BIB 1
[Jun 17 17:11:33] VERBOSE[24300] logger.c: <[0] MSU
[Jun 17 17:11:33] VERBOSE[24300] logger.c: [ 8f 8b 09 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      Network Indicator: 2 Priority: 0 User Part: ISUP (5)
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ 85 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      OPC 14768 DPC 1 SLS 15
[Jun 17 17:11:33] VERBOSE[24300] logger.c:      [ 01 00 6c fe ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              CIC: 63
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 3f 00 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              Message Type: RLC
[Jun 17 17:11:33] VERBOSE[24300] logger.c:              [ 10 ]
[Jun 17 17:11:33] VERBOSE[24300] logger.c:


More information about the asterisk-ss7 mailing list