es gibt ein Problem mit dem in LCOS verwendeten Statuscode SIP/488 bei der Zurückweisung von SIP-Calls.
Situation
LANCOM VoIP-Router (LCOS 9.10.0530RU5, oder 8.84.0289) an Telekom VoIP-Anschluss (DeutschlandLAN IP Voice/Data)
Wenn im Callmanager ein Ruf über die Funktion REJECT abgewiesen wird, schickt das LCOS den SIP Statuscode "488 Not Acceptable Here", um den Ruf abzuweisen.
Code: Alles auswählen
Callmanager] 2016/01/21 15:04:39,111 [VCM] : - info : using routing entry in row # 40
[Callmanager] 2016/01/21 15:04:39,111 [VCM] : - info : found REJECT line ==> reject call
[Callmanager] 2016/01/21 15:04:39,123 [SIP-Provider] : - info : reply code: 3
[Callmanager] 2016/01/21 15:04:39,123 [SIP-CALL] : - info : reject call with: 'Not Acceptable Here'
[SIP-Packet] 2016/01/21 15:04:39,124 [PACKET] :
Sending datagram with length 549 from 87.139.114.182:12491 to 217.0.23.100:5060 rtg-tag:1
SIP/2.0 488 Not Acceptable Here\r\n
Via: SIP/2.0/UDP 217.0.23.100:5060;branch=z9hG4bKg3Zqkv7ils2gt7r3w4m8vwcsts7oulcne\r\n
Record-Route: <sip:217.0.23.100;transport=udp;lr>\r\n
Ein Grund dürfte sein, dass in den Internetworking-Switches der Provider der SIP-Statuscode in einen ITU Q.850-Reason Code umgesetzt wird, und das ist bei SIP/488 mehrdeutig und wird sehr unterschiedlich gehandhabt.
SIP/488 --> RFC4497 Q.850/65 Bearer capability not implemented
--> RFC4497 Q.850/31 Normal, unspecified
--> RFC4497 Q.850/70 Only restricted digit available
--> "in the wild" Q.850/88 Incompatible destination
--> ANSI falsches Prefix
Einige Beispiele von Reaktionen des anrufenden Quell-Providers oder Zwischenstationen im VoIP-PSTN-Internetworking
- Quellnetz des Anrufs
Ablauf
- VoIP Telekom
Rufaufbau wird sofort beendet (korrekt)
Rückmeldung an den rufenden SIP-Agent:
SIP/488 Not Acceptable Here
- VoIP dus.net
7-fache Wiederholung des Rufaufbaus im Abstand von etwa 2,5 s!
Rückmeldung an den rufenden SIP-Agent:
SIP/488 Not Acceptable Here
- VoIP sipgate.de
Rufaufbau wird beendet (nach Ansage "Rufnummer nicht geschaltet)
Rückmeldung an den rufenden SIP-Agent:
SIP/404 Not Found
- ISDN Telekom
Rufaufbau wird sofort beendet (korrekt)
Rückmeldung an den rufenden SIP-Agent:
DISCONNECT Q.850 reason 31 - normal, unspecified
(was LCOS sinnvoll als "SIP/487 Request Terminated" an SIP-User weiterreicht)
- ISDN orange.fr
21-fache Wiederholung des Rufaufbaus im Abstand von etwa 0,7 s
über verschiedene Peerings (DTAG und Telefonica)!
Rückmeldung an den rufenden SIP-Agent:
DISCONNECT Q.850 reason 127 - internetworking, unspecified
(was LCOS als "SIP/500 Server Internal Error" an SIP-User weiterreicht)
- ISDN post.lu
5-fache Wiederholung des Rufaufbaus im Abstand von etwa 0,5 s!
Rückmeldung an den rufenden SIP-Agent:
DISCONNECT Q.850 reason 34 - no circuit/channel available
(was LCOS sinnvoll als "SIP/486 Busy Here" an SIP-User weiterreicht)
- Vodafone UTMS
Rufaufbau wird sofort beendet (korrekt)
Der von LCOS verwendete Reject-Code 488 für die Callrouter-Aktion "REJECT" scheint nicht besonders glücklich gewählt, denn er deutet in den ITU-Entsprechungen eine Inkompatibiltät an, sollte aber eine administrative Zurückweisung ausdrücken!
Frage
Kann man den SIP Statuscode nicht verändern (oder konfigurierbar machen), so dass eine definitive Zurückweisung (ohne Wiederholungen seitens der Provider) erreicht wird?
Vorschlag
Mir kommt da spontan nach RFC4497 in den Sinn:
SIP/486 Busy here <---> ITU Q.850 17 User busy
SIP/600 Busy everywhere <---> ITU Q.850 17 User busy
SIP/603 Declined <---> ITU Q.850 21 Call rejected
Haben eindeutige ITU-Equivalente und sollten das gewünschte Verhalten bringen.
Oder, wenn das erzielt werden soll
SIP/503 Service Unavailable <--> ITU Q.850 41 Temporary failure
Wird unterschiedlich interpretiert:
Telekom: "Der gewählte Teilnehmer ist vorübergehend nicht erreichbar"
Vodafone:
a) bei anonymem Ruf:
"Der Teilnehmer wünscht keine Anrufe mit unterdrückter Rufnummer"
b) mit CLIP
"Der gewählte Teilnehmer ist vorübergehend nicht erreichbar."
Gruß,
rougu