locked
Simultaneous Ring + Lync + Asterisk = Nur Mobilteil klingelt RRS feed

  • Frage

  • Hallo zusammen,

    wir sind gerade dabei unsere Telefonie von Asterisk auf Lync umzustellen. Daher ist Asterisk derzeit unser PSTN-Gateway - und wird es auch auf absehbare Zeit bleiben, die Alternative (Sangoma Netborder Express) scheint mir nicht alles komplett abdecken zu können.

    Die Konfiguration innerhalb von Asterisk (Trunk, Dialplan) ist denke ich soweit korrekt. Eingehende und Ausgehende Anrufe funktionieren problemlos, Anrufe von Asterisk Extensions nach Lync funktionieren problemlos und anders rum auch.

    Es gibt allerdings ein Problem mit der Funktion "Gleichzeitig anrufen". Dies funktioniert nur, wenn das Ziel eine (interne) Lync-Extension ist! Sobald das Ziel für den gleichzeitigen Anruf eine Asterisk Extension ist oder gar ins PSTN geht (Handy), ist es vorbei mit "gleichzeitig". Auf meinem Lync Client bekomme ich dann die Meldung, das das Gespräch (vom anderen) angenommen wurde - dabei hat gerade einmal Asterisk versucht zu wählen (angenommen hat Asterisk natürlich in diesem Moment durch sein "Answer()" schon, aber der externe Teilnehmer hat noch nicht abgehoben).

    Gibt es dafür eine Lösung oder muss man damit leben, das ein gleichzeitiger Ruf außerhalb von Lync nicht möglich ist?

    Vielen Dank und viele Grüße,
    Markus

    PS: Falls es jemand interessiert, so sieht es im Asterisk aus:

    Trunk:

    [to-lync]
    host=myhost.mydomain.local
    transport=tcp,udp
    port=5068
    insecure=invite,port
    type=friend
    fromdomain=mydomain.local
    context=from-lync
    promiscredir=yes
    qualify=yes
    dtmfmode=rfc2833
    canreinvite=no
    directmedia=no

    extensions_custom.conf:

    [from-lync]
    exten => _+X.,1,Set(CALLERID(number)=00${CALLERID(number):1})
    exten => _+X.,n,Set(AMPUSER=${CALLERID(number):-2)
    exten => _+X.,n,Answer
    exten => _+X.,n,Macro(dialout-trunk,1,00${EXTEN:1},)
    exten => _+X.,n,Hangup

    Und die Lync-Extensions sind in Asterisk mit einem anderen Dial-String hinterlegt:
    SIP/to-lync/+49123456789
    Dienstag, 26. Februar 2013 18:14

Antworten

  • Hallo zusammen,

    ich habe heute noch mal ein wenig getestet und mein Problem lag tatsächlich an Asterisk. Sowohl das Answer() als auch das canreinvite/directmedia=no waren hier das Problem.

    Viele Grüße,
    Markus

    Mittwoch, 27. Februar 2013 17:46

Alle Antworten

  • Hallo, das sieht nach einem signalisierungs Problem im SIP aus. Man müsste sich mal die SIP Kommunication mit einem Wireshark Trace anschauen.

    Vieleicht helfen diese Seiten weiter?

    http://memphistech.net/?p=245

    http://www.sipstories.com/2012/06/25/how-to-integrate-microsoft-lync-2010-asterisk-and-a-sip-trunk/

    http://blog.unifiedcommunications.eu/08/using-asterisk-to-pass-and-receive-sip-calls-from-microsoft-ocs-to-a-sip-trunk-in-udp/


    regards Holger Technical Specialist UC

    Dienstag, 26. Februar 2013 21:11
  • Hallo,

    vielen Dank für deine Antwort. Einen großteil dieser Links kannte ich tatsächlich schon, dein Hinweis nach einem Signalisierungsproblem im SIP-Problem hat mir aber zumindest in soweit weitergeholfen, das ich mich noch mal damit auseinander gesetzt habe - und es funktioniert nun!

    Ich bin mir leider nicht mehr genau sicher welche Änderung genau gegriffen hat, ich vermute es war das entfernen von "Answer()" aus dem Asterisk-Dialplan (oder eine Änderung am Trunk). Ich werde das aber morgen noch mal genauer evaluieren. Für heute bin ich erst mal froh das es scheinbar funktioniert. Hoffen wir das es "die Nacht übersteht" - man weiß ja nie, wäre nicht das erste Mal das es am nächsten Morgen plötzlich nicht mehr geht ;-) Man man man, diese blöde Kleinigkeit hat mich die letzten Tage beschäftigt...

    Gruß,
    Markus

    PS: Hier die aktuelle (relevante) Asterisk-Konfiguration

    Dial-plan (optimierungsbedürftig wg. dem E.164 replacement):

    [from-lync]
    exten => _+X.,1,Set(CALLERID(number)=00${CALLERID(number):1})
    exten => _+X.,n,Set(AMPUSER=${CALLERID(number):-2})
    ;exten => _+X.,n,Answer
    ;exten => _+X.,n,Wait(1)
    exten => _+X.,n,Macro(dialout-trunk,1,00${EXTEN:1},)
    exten => _+X.,n,Hangup

    Trunk:

    [to-lync]
    host=host.domain.local
    transport=tcp,udp
    port=5068
    insecure=invite,port
    type=friend
    fromdomain=domain.local
    context=from-lync
    dtmfmode=rfc2833
    promiscredir=yes
    qualify=yes
    canreinvite=yes
    directmedia=yes


    Dienstag, 26. Februar 2013 23:38
  • Hallo zusammen,

    ich habe heute noch mal ein wenig getestet und mein Problem lag tatsächlich an Asterisk. Sowohl das Answer() als auch das canreinvite/directmedia=no waren hier das Problem.

    Viele Grüße,
    Markus

    Mittwoch, 27. Februar 2013 17:46