Asterisk Dialplan - P-Asserted-Identity

Wenn SIP-Provider statt der Absendernummer bei internen Gesprächen nur die Kundennummer des Gesprächspartners als Rufnummer übermitteln, können oft Anrufe nicht identifiziert werden. Wer kennt denn schon die Kundennummer seines Gesprächspartners. Ausserdem ist oftmals ein Rückruf nicht möglich, denn Kundennummern können z.B. im Fall von sipgate.de auch Buchstaben enthalten. Ruft also ein sipgate-Kunde ein sipgate-Kunden an, wird primär nur die sipgate-interne Kundennummer statt der Telefonnummer übermittelt. Allerdings gibts Abhilfe. Neben der CALLERID sendet sipgate in dem Fall den sogenannten P-Asserted-Identity-Header im SIP-Invite mit. Nachfolgend stelle ich ein Beispiel bereit, wie der P-Asserted-Identity-Header, worin sich in solch einem Fall die nutzbare Rufnummer befindet, in den Dialplan einfügt.
[incoming]
exten => s,1,Verbose(Anruf über VoIP-Amt)
; Extrahiere Telefonnummer aus P-Asserted-Identity-Header
same => n,Set(FON=$["${SIP_HEADER(P-Asserted-Identity)}" : " n,ExecIf($[${ISNULL(${FON})}=0]?Set(CALLERID(num)=${FON}))
same => n,Dial(SIP/me)

Gezeigtes Beispiel funktioniert z.B. wunderbar bei sipgate.

Diese Lösung haben ich ebenfalls geteilt auf:

--- JavaScript not activated ---