birdyb
Goto Top

Asterisk mehrfach an Cisco Callmanager registrieren

Hallo zusammen,

ich habe da ein kleines Problem:
Zur Ansteuerung unserer ELA haben wir einen kleinen Asterisk-Server aufgesetzt, der mit einem CiscoCallmanager als SIP-Client verbunden ist.
Jetzt sollte der Asterisk noch ein paar andere Aufgaben übernehmen und ich habe in unserem Callmanager mehrere Nummern angelegt. Leider registriert sich aber immer nur eine Leitung und nicht alle:

sip.conf
[general]
port = 5060
transport = udp
nat = force_rport,comedia
bindaddr = 0.0.0.0
allowguest=no
alwaysauthreject=yes
register => 101:XXX@callmanager/cucm
register => 102:XXX@callmanager/ela1
register => 103:XXX@callmanager/ela2
context = incoming
language = de

[cucm]
type=friend
username=101
fromuser=101
secret=XXX
host=callmanager
fromdomain=callmanager
insecure=invite
caninvite=no
canreinvite=no
nat=no
qualify=yes

[ela1]
type=friend
username=102
fromuser=102
secret=XXX
host=callmanager
fromdomain=callmanager
insecure=invite
caninvite=no
canreinvite=no
nat=force_rport,comedia
qualify=yes

[ela2]
type=friend
username=103
fromuser=103
secret=XXX
host=callmanager
fromdomain=callmanager
insecure=invite
caninvite=no
canreinvite=no
nat=force_rport,comedia
qualify=yes

Hat jemand eine Idee woran dies liegt, bzw. wie ich das beheben kann?

VIelen Dank und beste Grüße!


Berthold


Ergänzung:

im Asterisk werden unter "sip show peers" die Leitungen online angezeiigt, im Callmanager ist jedoch immer nur ein Device registriert.

Content-Key: 320024

Url: https://administrator.de/contentid/320024

Printed on: April 24, 2024 at 08:04 o'clock

Member: aqui
aqui Nov 04, 2016 at 15:26:47 (UTC)
Goto Top
Mal mit dem Wireshark den SIP Sessionaufbau mitgesniffert und geprüft was der Cisco CM antwortet ??
Member: LordGurke
LordGurke Nov 04, 2016 at 16:37:03 (UTC)
Goto Top
Was sagt denn auf der CLI ein "sip show registry" und "sip show peers"?
Du kannst auch versuchen auf der laufenden Instanz zuerst "core set verbose 10" auszuführen und dann mit "sip reload" eine Neuregistrierung anzustoßen, vielleicht tauchen da Fehlermeldungen auf.

Pro-Tipp:

Du kannst dir die ganzen redundanten Config-Parameter sparen, indem du Templates und Vererbung benutzt - Beispiel:
[cm-template](!)
type=friend
host=callmanager
fromdomain=callmanager
insecure=invite
canreinvite=no
nat=force_rport,comedia
directmedia=no
directrtpsetup=no
qualify=yes

[ela-1](cm-template)
username=102
fromuser=102
secret=blafoo

[ela-2](cm-template)
username=103
fromuser=103
secret=blafoo

Aber: "type=friend" ist ein bisschen problematisch, wenn du willst dass die Asterisk als dieser User selbst woanders registriert (also selbst den Client spielt). Dann ist "type=peer" korrekt und vielleicht schon die Lösung für dein Problem.

Es gibt drei verschiedene Typen:
user: Die Asterisk ist Server und der definierte User registriert sich als Client an der Asterisk.
peer: Die Asterisk ist selbst der Client und registriert sich mit den definierten Zugangsdaten an einem anderen SIP-Server.
friend: Ist eine Mischung aus beidem, der Hauptpunkt ist allerdings dass die Asterisk davon ausgeht dass der definierte User sich an der Asterisk registriert anstatt umgekehrt.

Außerdem gibt es keinen Konfigurationsparameter "caninvite", es gibt nur "canreinvite" - dieser Fehler dürfte aber einfach ignoriert werden.
Member: BirdyB
BirdyB Nov 04, 2016 at 17:01:22 (UTC)
Goto Top
Zitat von @LordGurke:

Was sagt denn auf der CLI ein "sip show registry" und "sip show peers"?
sip show peers zeigt mir für alles OK

sip show registry zeigt mir immer 2 als rejected an und der verbose-log zeigt:
[Nov 4 17:55:13] WARNING[1824]: chan_sip.c:23400 handle_response_register: Got 404 Not found on SIP register to service 100@callmanager, giving up

Spannenderweise registriert er sich dann doch, wenn ich einen anderen deaktiviere. Scheint mir eher so, als würde der Callmanager keine 2 (oder mehr) Registrierungen von einer IP verkraften...
(Ich habe das gerade mit einem Softphone getestet: Ich kann immer nur einen Account gleichzeitig verbinden)

Du kannst auch versuchen auf der laufenden Instanz zuerst "core set verbose 10" auszuführen und dann mit "sip reload" eine Neuregistrierung anzustoßen, vielleicht tauchen da Fehlermeldungen auf.
Siehe oben!
Pro-Tipp:

Du kannst dir die ganzen redundanten Config-Parameter sparen, indem du Templates und Vererbung benutzt
Das ist großartig, vielen Dank für den Hinweis!
Aber: "type=friend" ist ein bisschen problematisch, wenn du willst dass die Asterisk als dieser User selbst woanders registriert (also selbst den Client spielt). Dann ist "type=peer" korrekt und vielleicht schon die Lösung für dein Problem.

Es gibt drei verschiedene Typen:
user: Die Asterisk ist Server und der definierte User registriert sich als Client an der Asterisk.
peer: Die Asterisk ist selbst der Client und registriert sich mit den definierten Zugangsdaten an einem anderen SIP-Server.
friend: Ist eine Mischung aus beidem, der Hauptpunkt ist allerdings dass die Asterisk davon ausgeht dass der definierte User sich an der Asterisk registriert anstatt umgekehrt.
Mir hat mal jemand gesagt, peer wäre nur für eingehende Gespräche gedacht. Habe ich dann wohl falsch verstanden. Leider behebt es das Problem nicht.
Außerdem gibt es keinen Konfigurationsparameter "caninvite", es gibt nur "canreinvite" - dieser Fehler dürfte aber einfach ignoriert werden.
Habe ich mal geändert...

Scheinbar handelt es sich um ein Problem mit dem Callmanager... Da werde ich wohl mal die Telekomiker nerven, die das Ding bei uns warten...
Member: LordGurke
LordGurke Nov 04, 2016 updated at 17:08:54 (UTC)
Goto Top
Unterstützt der Callmanager SIP over TCP?
Kannst du probieren mit "transport=tcp" und einer Neuregistrierung. Manche Geräte können über TCP besser damit umgehen, wenn Sie verschiedene Accounts von der selben IP verwalten sollen, da du dort halt feste Verbindungen hast woran der Server die Sitzungen erkennen kann.

Bei der Registrierung musst du dann zusätzlich noch
register => tcp://101:password....
verwenden.
Member: BirdyB
BirdyB Nov 04, 2016 at 17:32:49 (UTC)
Goto Top
Habe ich jetzt mal probiert...
Der erste Account verbindet sich auch per TCP einwandfrei (tcpenable = yes, transport=tcp,...)
Die weiteren Accounts bekommen weiter den 404.
Member: BirdyB
BirdyB Nov 04, 2016 at 22:24:01 (UTC)
Goto Top
Ich habe jetzt nochmal den Wireshark angeworfen:
Beim zweiten Connect kommt immer der Fehler "399 Line not configured"
Member: BirdyB
BirdyB Nov 06, 2016 at 18:29:57 (UTC)
Goto Top
So, das Cisco-Support-Forum antwortete folgendes:

Refer the following doc:

http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cucm/admin/10_0_1/cc ......

Cisco Unified Communications Manager does not support third party SIP phone registration using the same IP unless the combination of the IP address and the port number in the contact header are unique.