Skip to content

ISDN data and video call bearer type not preserved between ISUP and Q931 #12

@laf0rge

Description

@laf0rge

When routing q Q.931 call with bearer-cap=udi to ISUP, the bearer capability information is lost and the ISUP IAM is sent with "Information Transfer Capability: Speech" instead.

Oddly enough, yate does seam to notice a difference, as an actual speec call SETUP -> IAM looks like this:

SETUP
  [From initiator=true CallRef=34]   08 02 00 22 05
  Bearer capability (codeset=0 type=4)   04 03 90 90 a3
    transfer-cap=3.1khz-audio
    transfer-mode=circuit
    transfer-rate=64kbit
    layer1-protocol=alaw
  Channel identification (codeset=0 type=24)   18 03 a1 83 81
    interface-bri=false
    channel-exclusive=false
    d-channel=false
    channel-select=present
    channel-by-number=true
    type=B
    channels=1
  Calling number (codeset=0 type=108)   6c 0d 41 80 30 33 30 31 32 33 34 32 31 31 31
    type=subscriber
    plan=isdn
    presentation=allowed
    screening=user-provided
    number=03012342111
...
IAM [cic=15 label=0-0-1:2-229-5:15]  00 00 00 0a 00 02 0b 09 84 90 24 50 54 12 03 20 0f 0a 08 04 11 94 03 21 43 12 11 1d 03 80 90 a3 00^M
  CalledPartyNumber='420545213002.'
  CalledPartyNumber.inn='false'
  CalledPartyNumber.nature='international'
  CalledPartyNumber.plan='isdn'
  CallingPartyCategory='ordinary'
  CallingPartyNumber='493012342111'
  CallingPartyNumber.nature='international'
  CallingPartyNumber.plan='isdn'
  CallingPartyNumber.restrict='allowed'
  CallingPartyNumber.screened='user-provided-passed'
  CallingPartyNumber.complete='true'
  UserServiceInformation='alaw'

While the SETUP + IAM for te data call (actually an ISDN video phone) looks like this:

SETUP
  [From initiator=true CallRef=33]   08 02 00 21 05
  Bearer capability (codeset=0 type=4)   04 02 88 90
    transfer-cap=udi
    transfer-mode=circuit
    transfer-rate=64kbit
  Channel identification (codeset=0 type=24)   18 03 a1 83 81
    interface-bri=false
    channel-exclusive=false
    d-channel=false
    channel-select=present
    channel-by-number=true
    type=B
    channels=1
  Calling number (codeset=0 type=108)   6c 0d 41 80 30 33 30 31 32 33 34 32 31 32 31
    type=subscriber
    plan=isdn
    presentation=allowed
    screening=user-provided
    number=03012342121
...
IAM [cic=26 label=0-0-1:0-8-0:26]  00 00 00 0a 00 02 09 07 03 90 64 44 77 03 30 0a 07 03 10 03 21 43 12 12 1d 02 80 90 00
  CalledPartyNumber='4644773003'
  CalledPartyNumber.inn='false'
  CalledPartyNumber.nature='national'
  CalledPartyNumber.plan='isdn'
  CallingPartyCategory='ordinary'
  CallingPartyNumber='3012342121'
  CallingPartyNumber.nature='national'
  CallingPartyNumber.plan='isdn'
  CallingPartyNumber.restrict='allowed'
  CallingPartyNumber.screened='user-provided'
  CallingPartyNumber.complete='true'
  UserServiceInformation=''

Note that the UserServiceInformation is empty in the latter call, while it is "alaw" in the voice call. However, it seems that the empty UserServiceInformation is then encoded as voice, as the pcap file clearly indicates voice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions