- Mitglied seit
- 26 Mrz 2007
- Beiträge
- 959
- Punkte für Reaktionen
- 4
- Punkte
- 18
Hardware: Diva 4BRI-8M (V 2.0)
Software: chan_capi HEAD an Asterisk 1.8.26.1
An einem PtP-Anschluss der DTAG wird - soweit vom Anrufer statt der signalierten CalledPartyNumber ursprünglich eine andere Rufnummer gewählt wurde (von der dann unbedingt auf die in CalledPartyNumber angegebene umgeleitet wurde) - die ursprüngliche Zielrufnummer als Bestandteil des Facilitydataarray übermittelt, Beispiele:
(CalledPartyNumber und CallingPartyNumber geändert, dadurch ist LEN nicht korrekt!):
Bei einem Anruf direkt auf die CalledPartyNumber ist Facilitydataarray nicht gefüllt:
(auch hier: CalledPartyNumber und CallingPartyNumber geändert, dadurch ist LEN nicht korrekt!):
Nun müsste ich in der Lage sein, zu unterscheiden, ob der Anruf Richtung CalledPartyNumber direkt (also: Facilitydataarray=default) oder indirekt (also: ursprüngliche Zielrufnummer ist Element des Facilityarrays) erfolgt ist. Dafür müsste ich aber chan_capi dazu bewegen, die Daten in einer Variable an Asterisk zu übergeben. Leider habe ich augenblicklich keine Idee, wo eine entsprechende Implementierung ansetzen könnte (zumal ich mich in den Untiefen des ISDN-Protokollstacks nur unzureichend auskenne ...).
Hat hierzu jemand eine Idee oder gar eine Lösung ?
Software: chan_capi HEAD an Asterisk 1.8.26.1
An einem PtP-Anschluss der DTAG wird - soweit vom Anrufer statt der signalierten CalledPartyNumber ursprünglich eine andere Rufnummer gewählt wurde (von der dann unbedingt auf die in CalledPartyNumber angegebene umgeleitet wurde) - die ursprüngliche Zielrufnummer als Bestandteil des Facilitydataarray übermittelt, Beispiele:
(CalledPartyNumber und CallingPartyNumber geändert, dadurch ist LEN nicht korrekt!):
Code:
CAPI: ApplId=0x0006 Command=0x02 SubCommand=0x82 MsgNum=0xb421 NCCI=0x00002801
CONNECT_IND ID=006 #0xb427 LEN=062
CIPValue = 0x10
CalledPartyNumber = <c1>12345
CallingPartyNumber = <21 83>3012345
CalledPartySubaddress = default
CallingPartySubaddress = default
BC = <80 90 a3>
LLC = default
HLC = <91 81>
AdditionalInfo
BChannelinformation = default
Keypadfacility = default
Useruserdata = default
Facilitydataarray = <1c 29 91 a1 26 02 01 00 02 01 0f>0<1e 02 01 02 0a 01 01 a1 02 81 00 a2 12 a0 10 a1 0e 0a 01 02 12 09>713122888
SendingComplete = default
Bei einem Anruf direkt auf die CalledPartyNumber ist Facilitydataarray nicht gefüllt:
(auch hier: CalledPartyNumber und CallingPartyNumber geändert, dadurch ist LEN nicht korrekt!):
Code:
CAPI: ApplId=0x0006 Command=0x02 SubCommand=0x82 MsgNum=0xb421 NCCI=0x00002801
CONNECT_IND ID=006 #0xb421 LEN=0062
Controller/PLCI/NCCI = 0x2801
CIPValue = 0x4
CalledPartyNumber = <c1>12345
CallingPartyNumber = <21 80>3012345
CalledPartySubaddress = default
CallingPartySubaddress = default
BC = <90 90 a3>
LLC = default
HLC = default
AdditionalInfo
BChannelinformation = default
Keypadfacility = default
Useruserdata = default
Facilitydataarray = default
SendingComplete = default
Nun müsste ich in der Lage sein, zu unterscheiden, ob der Anruf Richtung CalledPartyNumber direkt (also: Facilitydataarray=default) oder indirekt (also: ursprüngliche Zielrufnummer ist Element des Facilityarrays) erfolgt ist. Dafür müsste ich aber chan_capi dazu bewegen, die Daten in einer Variable an Asterisk zu übergeben. Leider habe ich augenblicklich keine Idee, wo eine entsprechende Implementierung ansetzen könnte (zumal ich mich in den Untiefen des ISDN-Protokollstacks nur unzureichend auskenne ...).
Hat hierzu jemand eine Idee oder gar eine Lösung ?
Zuletzt bearbeitet: