[Problem] Extensions Outbound CID

drive92

Neuer User
Mitglied seit
15 Apr 2014
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe einen Trunk von sipgate.de, Tarif 2 mit dem ich gerade einige Konfigurationen ausprobiere.

Asterisk Version:13.6.0
Freepbx Version: 13.0.48
Anzahl der Extension: 5
Anzahl der Routes: 5 inbound, 1 outbound

Mein Ziel ist es 5 (spätere 10) verschiedene Rufnummern anzubieten. Jede Rufnummer, die von Sipgate gebucht ist/wird, soll von außen erreichbar sein und mit eigener Rufnummer heraus telefonieren. (Nummer entspricht nicht der Extensions-Nummer)


Die inbound Routes kann ich beschränken. Dazu füge ich die gewünschte Rufnummer, mit welcher meine Extension klingeln soll im ersten Feld "DID Number" ein. Als Ziel der Route wird dann die Extension gewählt.


OUTBOUND
Geht nicht, ich versuche verzweifelt die Outbound CID in der Extension zu setzen. Leider geht das nicht, es wird immer die Standard-Anlagen Rufnummer von Sipgate übermittelt.

Ich hoffe jemand kann mir helfen :)
 
Hast Du im Feld Outbound CID in den Trunk Settings was stehen, und wie ist die CID der Extensions formatiert?
 
Nein im Trunk ist die Caller-ID nicht eingetragen, ebenso wenig wie im Outbound - hier sit die Route-Cid auch nicht eingetragen.

In der Extension steht <4921178178994**7>

Ebenfalls ist in den erweiterten Settings:
SIP trustrpid yes
SIP sendrpid pai

Es bringt leider nichts, es wird immer die standard Rufnummer Übermittelt.

habe mich dann auch mal folgende zwei Sachen nacheinander getestet:
Code:
[macro-dialout-trunk-predial-hook]
exten => s,1,SipAddHeader(P-Preferred-Identity:sip:${CALLERID(number)}@sipconnect.sipgate.de)

Code:
[macro-dialout-trunk-predial-hook]
exten => s,1,Set(CLIP=${CALLERID(number)})
exten => s,n,Set(CLIP=${IF($["${CLIP:0:2}"="00"]?${CLIP:2}:${CLIP})}) ; 00 abschneiden
exten => s,n,Set(CLIP=${IF($["${CLIP:0:1}"="0"]?49${CLIP:1}:${CLIP})}) ; 0 durch 49 ersetzen
exten => s,n,Set(CALLERID(name)=${CLIP})
exten => s,n,Set(CALLERID(number)=${CLIP})
exten => s,n,SipAddHeader(P-Preferred-Identity: <sip:${CLIP}@sipconnect.sipgate.de>)

-> Bei beiden Erweiterungen erhalte ich ein Besetzzeichen, wenn ich versuche heraus zu telefonieren.
 
Hi, achte auf < > und versuche Leerzeichen zu vermeiden, vielleicht klappt es dann:

Code:
exten => _X.,n,SipAddHeader(P-Preferred-Identity:<sip:${CALLERID(num)}@sipconnect.sipgate.de>)

Das Argument number ist nach meinem Kenntnisstand in *13 nicht mehr üblich. Die CALLERID musst du vorher natürlich, z.B. mit num, setzen.

VG R.
 
Nummer setzen...

Moins

So (ähnlich) mach ich das auch mit meiner Callthrough Nummer...
Code:
exten => 1001,1(start),NoOp(${CALLERID(all)})
same  => n,Set(CALLERID(all)="This is CALLTHROUGH <1005>")
same  => n,SipAddHeader(P-Preferred-Identity: ${CALLERID(num)})
same  => n,Dial(SIP/${EXTEN},5,D(0000)tThHkKwWxX)
same  => n,Goto(s,${DIALSTATUS})
...damit jedes Telefon dieselbe erlaubte Identität bekommt.
 
Zuletzt bearbeitet:
Ok, also was ich jetzt in der "/etc/asterisk/extensions_custom.conf" eingefügt habe ist:

Code:
[macro-dialout-trunk-predial-hook]
exten => _X.,n,SipAddHeader(P-Preferred-Identity:sip:${CALLERID(number)}@sipconnect.sipgate.de)

Es funktioniert nicht, das Gespräch wird sofort abgebrochen.

was meinst du mit
CALLERID musst du vorher natürlich, z.B. mit num, setzen.
 
Asterisk kennt deine CALLERID nur, wenn du sie ihm vorher mit Set(CALLERID(num)=DeineCallerID) mitteilst.
Wie gesagt, number ist nicht mehr üblich! Details vermutlich auch hierzu im asterisk-wiki.

VG R.
 
Moins

Wie gesagt, number ist nicht mehr üblich! Details vermutlich auch hierzu im asterisk-wiki.
Nichtsdestotrotz möchte ich das hier mal verdeutlichen.

Mit...
Code:
same  => n,Set(CALLERID(all)="This is CALLTHROUGH <1005>")
...setzt du auch die CALLERID(num)

Das sieht dann in der Anrufsliste so aus...
callerid_all_01.png
...damit ich gleich bescheid weiss.

Der zusätzliche Header P-Preferred-Identity muss von der Gegenstelle aber auch ausgewertet werden.
...das ist bei mir nicht nötig, aber anscheinend bei dir. ;)
 
Also Danke für eure schnellen Antworten, nur leider bin ich noch nicht weiter gekommen.

Verstehe ich das richtig, dass
Code:
1 [macro-dialout-trunk-predial-hook]
2 exten => s,1,Set(CLIP=${CALLERID(num)})
3 exten => s,n,Set(CLIP=${IF($["${CLIP:0:2}"="00"]?${CLIP:2}:${CLIP})}) ; 00 abschneiden
4 exten => s,n,Set(CLIP=${IF($["${CLIP:0:1}"="0"]?49${CLIP:1}:${CLIP})}) ; 0 durch 49 ersetzen
5 exten => s,n,Set(CALLERID(name)=${CLIP})
6 exten => s,n,Set(CALLERID(num)=${CLIP})
7 exten => s,n,SipAddHeader(P-Preferred-Identity:<sip:${CLIP}@sipconnect.sipgate.de>)

1) Context macro****-hook wird beim jeden herausrufen über trunk aufgerufen.
2) Die Variable CLIP mit dem Wert aus CallerID(num) gespeichert wird.
3) Die Variable CLIP wird bearbeitet von der Outgoing CID wird 00 abgeschnitten.
4) In der Variable CLIP word die erste 0 durch 49 ersetzt.
5) + 6) kann ich mir nicht erklären, da ja der Wert aus num schon in schritt 3+4 bearbeitet wurde
7) Setzt dem SipAdder mit ausgehender Rufnummer im E164 Format - Ermittelt aus CLIP.

Wenn ich obigen Code versuche, bleibt die Leitung nichts als besetzt.

8) Muss ich die Outgoing CId dann nicht auch mit 0049 setzen, wenn hier die 00 abgeshcnitten wird?

9) Des weiteren habe ich mir die Frage gestellt, ob es was ausmacht, dass ich nur den PJSIP Driver installiert habe und dort die Befehle anders sind?


10) GENERELL habe ich die Frage, wie ich am besten Debuggen kann, wo nach ich zu suchen habe. Wenn ich die Asterisk CLI aufhabe kommt einfach zu viel dass der überblick verloren geht.
 
Zuletzt bearbeitet:
Versuch dann mal...
Code:
asterisk -r[color="red"]vvvvv[/color]
help sip
sip set debug off
...fürs debugen der Kontext/Extension Geschichte, und...
Code:
sip set debug on
...wenn Kontext/Extension richtig scheinen. ;)



Wenn du wissen willst, was bei Funktionen oder Variablen rauskommt, nutze...
Code:
same => n,NoOp(${CALLERID(all)})
...in deinem Fall natürlich an den entsprechenden Stellen...
Code:
same => n,NoOp(${CLIP})
 
Zuletzt bearbeitet:
Ich krieg es irgendwie nicht hin - kann mir jemand per teamviewer oder skype helfen? Würde auch die Techniker gebühr zahlen :D
 
Ich hab einen Fehler gemacht.
:rolleyes:

Der korrekte Aufruf vom Asterisk*CLI lautet: asterisk -rvvvvv
...sonst findet keine Kontext/Extension Ausgabe im CLI statt, tschuldigung.
:roll:

Auch mal Beispiele im Netz suchen und bei dir anpassen, wie bspw...
Code:
same  => n,SipAddHeader(P-Preferred-Identity: <sip:49${CALLERID(num):1}@DNS_des_Asterisk>)
...denn der "ferne Server" muss das auswerten können.
 
Zuletzt bearbeitet:
Danke schön,

woher bekommt er denn meine CALLERID?

Meiner Vermtung nach setze ich diese an zwei Stellen:
1) PJSIP Settings "from User": 233...t0
2) Extensions Outbound CID: "name" <4912345678>
 
Callerid

Einen Anhaltspunkt bekommst du, wenn du...
Code:
same => n,NoOp(${CALLERID(all)})
...vor Änderung anzeigen läßt.

Bei einen User/Peer kann die...
Code:
callerid=Vorname Nachname<1234567890>
...Definition (sip.conf) schon gesetzt werden.

Bei den Rein/Rausgehenden (sip.conf) benutz ich nur sowas...
Code:
defaultuser=620
fromuser=620
...damit die CALLERID des "Rein/Rausrufers" gilt.
 
Zuletzt bearbeitet:
Die richtige Stelle für die Callerid nach extern ist die Extension Outbound CID, das ganze im e164 Format.
fromuser überschreibt im INVITE im From-Header jegliche vorher gesetzte Callerid(num). Das wirkt sich aber nur direkt im INVITE aus, vorher im Dialplan steht in CALLERID(num) immer noch die jeweilige Outbound CID zur Verfügung. Bei sipgate sollte in fromuser die sipgate-User-ID stehen, hast Du ja auch so.

Bei sipgate Basic konnte man früher mal die gewünschte Nummer als Callerid(name) mitsenden, da hätte das mit Extension Outbound CID "490815"<12345> funktioniert. Bei sipgate team und trunking braucht es wohl den P-Header.

Da Du den P-Header aber nur für sipgate brauchst, würde ich in der extensions-custom.conf eine eigene Routine definieren
Code:
[p-header]
exten => sipgate,1,Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:${CALLERID(num)}@sipconnect.sipgate.de>)
 same => n,Return()
und das in den Trunk Dial Options mit b(p-header,sipgate,1) einbinden.

Wenn das immer noch nicht funktioniert wie es soll, mach bitte ein Log mit asterisk -rvvvvv und poste das hier. Ist bei GUI Dialplänen etwas unübersichtlich, aber wir suchen uns die interessanten Stellen dann schon raus.
 
@rentier-s Habe die extensions_custom.conf einmal komplett geleert und mit deinem Inhalt befüllt

Bei folgendem stoße ich auf ein neues Problem.
und das in den Trunk Dial Options mit b(p-header,sipgate,1) einbinden.

Da ich nicht weiss, wie ich das in den Dial Patterns der Freepbx eintragen kann - schließlich gibts hier 4 Felder... Habe in den FreePBX Advance Settings/ Enable The Old Style FreePBX Dial Patterns Textarea -> yes aktiviert.
Und dann wie du wolltest in den Trunk Dial Options ins Textfeld eingetragen. Apply, Amportal Restart, Reboot duchgeführt.

Leider ist nach dem ersten Aply Config der Wert geändert auf -1!

----------
Ich mache hier einen Schnitt, da mir der Wissenserfolg oder auch die strukturiertere Angehensweise meiner Seits neue Erfolge/Denkweisen gebracht hat.


Und zwar hatte ich in meinen Post 2 dieses ursprünglich gefunden:
Code:
[macro-dialout-trunk-predial-hook]
exten => s,1,Set(CLIP=${CALLERID(num)})
exten => s,n,Set(CLIP=${IF($["${CLIP:0:2}"="00"]?${CLIP:2}:${CLIP})}) ; 00 abschneiden
exten => s,n,Set(CLIP=${IF($["${CLIP:0:1}"="0"]?49${CLIP:1}:${CLIP})}) ; 0 durch 49 ersetzen
exten => s,n,Set(CALLERID(name)=${CLIP})
exten => s,n,Set(CALLERID(num)=${CLIP})
[I][B]exten => s,n,SipAddHeader(P-Preferred-Identity:<sip:${CLIP}@sipconnect.sipgate.de>)                              *1
#;exten => s,n,Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:${CLIP}@sipconnect.sipgate.de>)         *2[/B][/I]

Trage Ich dies ein. funktioniert die Hook Ansich wohl auch, aber es kommt nicht bis zu meinem Mobiltelefon durch..
Und egal ob ich oben *1 oder *2 auskommentiere -> Die Darstellung im Log unter *3 ist die gleiche.

Code:
    -- Executing [00347XXX2970@from-internal:1] Macro("PJSIP/10001-00000006", "user-callerid,LIMIT,EXTERNAL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("PJSIP/10001-00000006", "TOUCH_MONITOR=1452969328.9") in new stack
    -- Executing [s@macro-user-callerid:2] Set("PJSIP/10001-00000006", "AMPUSER=10001") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("PJSIP/10001-00000006", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] ExecIf("PJSIP/10001-00000006", "1?Set(REALCALLERIDNUM=10001)") in new stack
    -- Executing [s@macro-user-callerid:5] Set("PJSIP/10001-00000006", "AMPUSER=10001") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("PJSIP/10001-00000006", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:7] Set("PJSIP/10001-00000006", "AMPUSERCIDNAME=Test-Extension001") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/10001-00000006", "0?report") in new stack
    -- Executing [s@macro-user-callerid:9] Set("PJSIP/10001-00000006", "AMPUSERCID=10001") in new stack
    -- Executing [s@macro-user-callerid:10] Set("PJSIP/10001-00000006", "__DIAL_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-user-callerid:11] Set("PJSIP/10001-00000006", "CALLERID(all)="Test-Extension001" <10001>") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("PJSIP/10001-00000006", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/10001-00000006", "1?Set(GROUP(concurrency_limit)=10001)") in new stack
    -- Executing [s@macro-user-callerid:14] ExecIf("PJSIP/10001-00000006", "1?Set(CHANNEL(language)=de_alaw)") in new stack
    -- Executing [s@macro-user-callerid:15] GotoIf("PJSIP/10001-00000006", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,29)
    -- Executing [s@macro-user-callerid:29] Set("PJSIP/10001-00000006", "CALLERID(number)=10001") in new stack
    -- Executing [s@macro-user-callerid:30] Set("PJSIP/10001-00000006", "CALLERID(name)=Test-Extension001") in new stack
    -- Executing [s@macro-user-callerid:31] Set("PJSIP/10001-00000006", "CDR(cnum)=10001") in new stack
    -- Executing [s@macro-user-callerid:32] Set("PJSIP/10001-00000006", "CDR(cnam)=Test-Extension001") in new stack
    -- Executing [s@macro-user-callerid:33] Set("PJSIP/10001-00000006", "CHANNEL(language)=de_alaw") in new stack
    -- Executing [00347XXX2970@from-internal:2] Gosub("PJSIP/10001-00000006", "sub-record-check,s,1(out,00347XXX2970,dontcare)") in new stack
    -- Executing [s@sub-record-check:1] GotoIf("PJSIP/10001-00000006", "0?initialized") in new stack
    -- Executing [s@sub-record-check:2] Set("PJSIP/10001-00000006", "__REC_STATUS=INITIALIZED") in new stack
    -- Executing [s@sub-record-check:3] Set("PJSIP/10001-00000006", "NOW=1452969328") in new stack
    -- Executing [s@sub-record-check:4] Set("PJSIP/10001-00000006", "__DAY=16") in new stack
    -- Executing [s@sub-record-check:5] Set("PJSIP/10001-00000006", "__MONTH=01") in new stack
    -- Executing [s@sub-record-check:6] Set("PJSIP/10001-00000006", "__YEAR=2016") in new stack
    -- Executing [s@sub-record-check:7] Set("PJSIP/10001-00000006", "__TIMESTR=20160116-193528") in new stack
    -- Executing [s@sub-record-check:8] Set("PJSIP/10001-00000006", "__FROMEXTEN=10001") in new stack
    -- Executing [s@sub-record-check:9] Set("PJSIP/10001-00000006", "__MON_FMT=wav") in new stack
    -- Executing [s@sub-record-check:10] NoOp("PJSIP/10001-00000006", "Recordings initialized") in new stack
    -- Executing [s@sub-record-check:11] ExecIf("PJSIP/10001-00000006", "0?Set(ARG3=dontcare)") in new stack
    -- Executing [s@sub-record-check:12] Set("PJSIP/10001-00000006", "REC_POLICY_MODE_SAVE=") in new stack
    -- Executing [s@sub-record-check:13] ExecIf("PJSIP/10001-00000006", "0?Set(REC_STATUS=NO)") in new stack
    -- Executing [s@sub-record-check:14] GotoIf("PJSIP/10001-00000006", "3?checkaction") in new stack
    -- Goto (sub-record-check,s,17)
    -- Executing [s@sub-record-check:17] GotoIf("PJSIP/10001-00000006", "1?sub-record-check,out,1") in new stack
    -- Goto (sub-record-check,out,1)
    -- Executing [out@sub-record-check:1] NoOp("PJSIP/10001-00000006", "Outbound Recording Check from 10001 to 00347XXX2970") in new stack
    -- Executing [out@sub-record-check:2] Set("PJSIP/10001-00000006", "RECMODE=dontcare") in new stack
    -- Executing [out@sub-record-check:3] ExecIf("PJSIP/10001-00000006", "1?Goto(routewins)") in new stack
    -- Goto (sub-record-check,out,7)
    -- Executing [out@sub-record-check:7] Gosub("PJSIP/10001-00000006", "recordcheck,1(dontcare,out,00347XXX2970)") in new stack
    -- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/10001-00000006", "Starting recording check against dontcare") in new stack
    -- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/10001-00000006", "dontcare") in new stack
    -- Goto (sub-record-check,recordcheck,3)
    -- Executing [recordcheck@sub-record-check:3] Return("PJSIP/10001-00000006", "") in new stack
    -- Executing [out@sub-record-check:8] Return("PJSIP/10001-00000006", "") in new stack
    -- Executing [00347XXX2970@from-internal:3] ExecIf("PJSIP/10001-00000006", "0 ?Set(CDR(accountcode)=)") in new stack
    -- Executing [00347XXX2970@from-internal:4] Set("PJSIP/10001-00000006", "MOHCLASS=default") in new stack
    -- Executing [00347XXX2970@from-internal:5] Set("PJSIP/10001-00000006", "_NODEST=") in new stack
    -- Executing [00347XXX2970@from-internal:6] Macro("PJSIP/10001-00000006", "dialout-trunk,4,00347XXX2970,,on") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("PJSIP/10001-00000006", "DIAL_TRUNK=4") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("PJSIP/10001-00000006", "0?sub-pincheck,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("PJSIP/10001-00000006", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("PJSIP/10001-00000006", "DIAL_NUMBER=00347XXX2970") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("PJSIP/10001-00000006", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("PJSIP/10001-00000006", "OUTBOUND_GROUP=OUT_4") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("PJSIP/10001-00000006", "1?nomax") in new stack
    -- Goto (macro-dialout-trunk,s,9)
    -- Executing [s@macro-dialout-trunk:9] GotoIf("PJSIP/10001-00000006", "0?skipoutcid") in new stack
    -- Executing [s@macro-dialout-trunk:10] Set("PJSIP/10001-00000006", "DIAL_TRUNK_OPTIONS=Tt") in new stack
    -- Executing [s@macro-dialout-trunk:11] Macro("PJSIP/10001-00000006", "outbound-callerid,4") in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("PJSIP/10001-00000006", "0?Set(CALLERPRES(name-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("PJSIP/10001-00000006", "0?Set(CALLERPRES(num-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:3] ExecIf("PJSIP/10001-00000006", "0?Set(REALCALLERIDNUM=10001)") in new stack
    -- Executing [s@macro-outbound-callerid:4] GotoIf("PJSIP/10001-00000006", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,7)
    -- Executing [s@macro-outbound-callerid:7] Set("PJSIP/10001-00000006", "USEROUTCID=<496XXX8829>") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("PJSIP/10001-00000006", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:9] Set("PJSIP/10001-00000006", "TRUNKOUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:10] GotoIf("PJSIP/10001-00000006", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,15)
    -- Executing [s@macro-outbound-callerid:15] ExecIf("PJSIP/10001-00000006", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:16] ExecIf("PJSIP/10001-00000006", "1?Set(CALLERID(all)=<496XXX8829>)") in new stack
    -- Executing [s@macro-outbound-callerid:17] ExecIf("PJSIP/10001-00000006", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:18] ExecIf("PJSIP/10001-00000006", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:19] ExecIf("PJSIP/10001-00000006", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:20] Set("PJSIP/10001-00000006", "CDR(outbound_cnum)=496XXX8829") in new stack
    -- Executing [s@macro-outbound-callerid:21] Set("PJSIP/10001-00000006", "CDR(outbound_cnam)=") in new stack
[2016-01-16 19:35:28] WARNING[1596]: func_cdr.c:352 cdr_write_callback: CDR requires a value (CDR(variable)=value)
    -- Executing [s@macro-dialout-trunk:12] GosubIf("PJSIP/10001-00000006", "1?sub-flp-4,s,1()") in new stack
    -- Executing [s@sub-flp-4:1] ExecIf("PJSIP/10001-00000006", "0?Return()") in new stack
    -- Executing [s@sub-flp-4:2] Return("PJSIP/10001-00000006", "") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("PJSIP/10001-00000006", "OUTNUM=00347XXX2970") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("PJSIP/10001-00000006", "custom=PJSIP") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("PJSIP/10001-00000006", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)") in new stack
    -- Executing [s@macro-dialout-trunk:16] ExecIf("PJSIP/10001-00000006", "0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))") in new stack
    -- Executing [s@macro-dialout-trunk:17] Macro("PJSIP/10001-00000006", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] Set("PJSIP/10001-00000006", "CLIP=496XXX8829") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:2] Set("PJSIP/10001-00000006", "CLIP=496XXX8829") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:3] Set("PJSIP/10001-00000006", "CLIP=496XXX8829") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:4] Set("PJSIP/10001-00000006", "CALLERID(name)=496XXX8829") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:5] Set("PJSIP/10001-00000006", "CALLERID(num)=496XXX8829") in new stack
 [B]   -- Executing [s@macro-dialout-trunk-predial-hook:6] SIPAddHeader("PJSIP/10001-00000006", "P-Preferred-Identity:<sip:[email protected]>") in new stack                                          *3[/B]
    -- Executing [s@macro-dialout-trunk:18] GotoIf("PJSIP/10001-00000006", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:19] ExecIf("PJSIP/10001-00000006", "1?Set(CONNECTEDLINE(num,i)=00347XXX2970)") in new stack
[B]    -- Executing [s@macro-dialout-trunk:20] ExecIf("PJSIP/10001-00000006", "1?Set(CONNECTEDLINE(name,i)=CID:496XXX8829)") in new stack                                                                                                    *4
    -- Executing [s@macro-dialout-trunk:21] ExecIf("PJSIP/10001-00000006", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)496XXX8829)") in new stack[/B]
    -- Executing [s@macro-dialout-trunk:22] GotoIf("PJSIP/10001-00000006", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:23] Dial("PJSIP/10001-00000006", "PJSIP/00347XXX2970@21XXXXt0,300,Tt") in new stack
    -- Called PJSIP/00347XXX2970@21XXXXt0

Danke für all eure Hilfe!
 
Zuletzt bearbeitet:
Es gibt in den Trunk Einstellungen ein Feld Trunk Dial Options. Dort müsste das b(...) mit rein (dafür das t eigentlich raus). Aber egal, laut Log funktioniert der Hook ja tatsächlich.

Interessant wäre gerade, wie es nach dem "Called PJSIP/00347XXX2970@21XXXXt0" im Log weiter geht. Heißt der Trunk wirklich 21XXXXt0?
 
ich habe nochmal den vollständigen Log (bis um auflegen durch angerufenden) mit -rvvvvv sip debug on mit geschnitten.

Code:
PBX001*CLI> sip set debug on
SIP Debugging enabled
    -- Executing [00347xxx332970@from-internal:1] Macro("PJSIP/10002-0000001b", "user-callerid,LIMIT,EXTERNAL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("PJSIP/10002-0000001b", "TOUCH_MONITOR=14531130xxx.41") in new stack
    -- Executing [s@macro-user-callerid:2] Set("PJSIP/10002-0000001b", "AMPUSER=10002") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("PJSIP/10002-0000001b", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] ExecIf("PJSIP/10002-0000001b", "1?Set(REALCALLERIDNUM=10002)") in new stack
    -- Executing [s@macro-user-callerid:5] Set("PJSIP/10002-0000001b", "AMPUSER=10002") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("PJSIP/10002-0000001b", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:7] Set("PJSIP/10002-0000001b", "AMPUSERCIDNAME=Test-Extension002") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/10002-0000001b", "0?report") in new stack
    -- Executing [s@macro-user-callerid:9] Set("PJSIP/10002-0000001b", "AMPUSERCID=10002") in new stack
    -- Executing [s@macro-user-callerid:10] Set("PJSIP/10002-0000001b", "__DIAL_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-user-callerid:11] Set("PJSIP/10002-0000001b", "CALLERID(all)="Test-Extension002" <10002>") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("PJSIP/10002-0000001b", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/10002-0000001b", "1?Set(GROUP(concurrency_limit)=10002)") in new stack
    -- Executing [s@macro-user-callerid:14] ExecIf("PJSIP/10002-0000001b", "1?Set(CHANNEL(language)=de_alaw)") in new stack
    -- Executing [s@macro-user-callerid:15] GotoIf("PJSIP/10002-0000001b", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,29)
    -- Executing [s@macro-user-callerid:29] Set("PJSIP/10002-0000001b", "CALLERID(number)=10002") in new stack
    -- Executing [s@macro-user-callerid:30] Set("PJSIP/10002-0000001b", "CALLERID(name)=Test-Extension002") in new stack
    -- Executing [s@macro-user-callerid:31] Set("PJSIP/10002-0000001b", "CDR(cnum)=10002") in new stack
    -- Executing [s@macro-user-callerid:32] Set("PJSIP/10002-0000001b", "CDR(cnam)=Test-Extension002") in new stack
    -- Executing [s@macro-user-callerid:33] Set("PJSIP/10002-0000001b", "CHANNEL(language)=de_alaw") in new stack
    -- Executing [00347xxx332970@from-internal:2] Gosub("PJSIP/10002-0000001b", "sub-record-check,s,1(out,00347xxx332970,dontcare)") in new stack
    -- Executing [s@sub-record-check:1] GotoIf("PJSIP/10002-0000001b", "0?initialized") in new stack
    -- Executing [s@sub-record-check:2] Set("PJSIP/10002-0000001b", "__REC_STATUS=INITIALIZED") in new stack
    -- Executing [s@sub-record-check:3] Set("PJSIP/10002-0000001b", "NOW=14531130xxx") in new stack
    -- Executing [s@sub-record-check:4] Set("PJSIP/10002-0000001b", "__DAY=18") in new stack
    -- Executing [s@sub-record-check:5] Set("PJSIP/10002-0000001b", "__MONTH=01") in new stack
    -- Executing [s@sub-record-check:6] Set("PJSIP/10002-0000001b", "__YEAR=2016") in new stack
    -- Executing [s@sub-record-check:7] Set("PJSIP/10002-0000001b", "__TIMESTR=20160118-1130xxx") in new stack
    -- Executing [s@sub-record-check:8] Set("PJSIP/10002-0000001b", "__FROMEXTEN=10002") in new stack
    -- Executing [s@sub-record-check:9] Set("PJSIP/10002-0000001b", "__MON_FMT=wav") in new stack
    -- Executing [s@sub-record-check:10] NoOp("PJSIP/10002-0000001b", "Recordings initialized") in new stack
    -- Executing [s@sub-record-check:11] ExecIf("PJSIP/10002-0000001b", "0?Set(ARG3=dontcare)") in new stack
    -- Executing [s@sub-record-check:12] Set("PJSIP/10002-0000001b", "REC_POLICY_MODE_SAVE=") in new stack
    -- Executing [s@sub-record-check:13] ExecIf("PJSIP/10002-0000001b", "0?Set(REC_STATUS=NO)") in new stack
    -- Executing [s@sub-record-check:14] GotoIf("PJSIP/10002-0000001b", "3?checkaction") in new stack
    -- Goto (sub-record-check,s,17)
    -- Executing [s@sub-record-check:17] GotoIf("PJSIP/10002-0000001b", "1?sub-record-check,out,1") in new stack
    -- Goto (sub-record-check,out,1)
    -- Executing [out@sub-record-check:1] NoOp("PJSIP/10002-0000001b", "Outbound Recording Check from 10002 to 00347xxx332970") in new stack
    -- Executing [out@sub-record-check:2] Set("PJSIP/10002-0000001b", "RECMODE=dontcare") in new stack
    -- Executing [out@sub-record-check:3] ExecIf("PJSIP/10002-0000001b", "1?Goto(routewins)") in new stack
    -- Goto (sub-record-check,out,7)
    -- Executing [out@sub-record-check:7] Gosub("PJSIP/10002-0000001b", "recordcheck,1(dontcare,out,00347xxx332970)") in new stack
    -- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/10002-0000001b", "Starting recording check against dontcare") in new stack
    -- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/10002-0000001b", "dontcare") in new stack
    -- Goto (sub-record-check,recordcheck,3)
    -- Executing [recordcheck@sub-record-check:3] Return("PJSIP/10002-0000001b", "") in new stack
    -- Executing [out@sub-record-check:8] Return("PJSIP/10002-0000001b", "") in new stack
    -- Executing [00347xxx332970@from-internal:3] ExecIf("PJSIP/10002-0000001b", "0 ?Set(CDR(accountcode)=)") in new stack
    -- Executing [00347xxx332970@from-internal:4] Set("PJSIP/10002-0000001b", "MOHCLASS=default") in new stack
    -- Executing [00347xxx332970@from-internal:5] Set("PJSIP/10002-0000001b", "_NODEST=") in new stack
    -- Executing [00347xxx332970@from-internal:6] Macro("PJSIP/10002-0000001b", "dialout-trunk,4,00347xxx332970,,on") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("PJSIP/10002-0000001b", "DIAL_TRUNK=4") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("PJSIP/10002-0000001b", "0?sub-pincheck,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("PJSIP/10002-0000001b", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("PJSIP/10002-0000001b", "DIAL_NUMBER=00347xxx332970") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("PJSIP/10002-0000001b", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("PJSIP/10002-0000001b", "OUTBOUND_GROUP=OUT_4") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("PJSIP/10002-0000001b", "1?nomax") in new stack
    -- Goto (macro-dialout-trunk,s,9)
    -- Executing [s@macro-dialout-trunk:9] GotoIf("PJSIP/10002-0000001b", "0?skipoutcid") in new stack
    -- Executing [s@macro-dialout-trunk:10] Set("PJSIP/10002-0000001b", "DIAL_TRUNK_OPTIONS=Tt") in new stack
    -- Executing [s@macro-dialout-trunk:11] Macro("PJSIP/10002-0000001b", "outbound-callerid,4") in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("PJSIP/10002-0000001b", "0?Set(CALLERPRES(name-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("PJSIP/10002-0000001b", "0?Set(CALLERPRES(num-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:3] ExecIf("PJSIP/10002-0000001b", "0?Set(REALCALLERIDNUM=10002)") in new stack
    -- Executing [s@macro-outbound-callerid:4] GotoIf("PJSIP/10002-0000001b", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,7)
    -- Executing [s@macro-outbound-callerid:7] Set("PJSIP/10002-0000001b", "USEROUTCID=<49610xxxxxxx20>") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("PJSIP/10002-0000001b", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:9] Set("PJSIP/10002-0000001b", "TRUNKOUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:10] GotoIf("PJSIP/10002-0000001b", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,15)
    -- Executing [s@macro-outbound-callerid:15] ExecIf("PJSIP/10002-0000001b", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:16] ExecIf("PJSIP/10002-0000001b", "1?Set(CALLERID(all)=<49610xxxxxxx20>)") in new stack
    -- Executing [s@macro-outbound-callerid:17] ExecIf("PJSIP/10002-0000001b", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:18] ExecIf("PJSIP/10002-0000001b", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:19] ExecIf("PJSIP/10002-0000001b", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:20] Set("PJSIP/10002-0000001b", "CDR(outbound_cnum)=49610xxxxxxx20") in new stack
    -- Executing [s@macro-outbound-callerid:21] Set("PJSIP/10002-0000001b", "CDR(outbound_cnam)=") in new stack
[2016-01-18 11:30:xxx] WARNING[3772]: func_cdr.c:352 cdr_write_callback: CDR requires a value (CDR(variable)=value)
    -- Executing [s@macro-dialout-trunk:12] GosubIf("PJSIP/10002-0000001b", "1?sub-flp-4,s,1()") in new stack
    -- Executing [s@sub-flp-4:1] ExecIf("PJSIP/10002-0000001b", "0?Return()") in new stack
    -- Executing [s@sub-flp-4:2] Return("PJSIP/10002-0000001b", "") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("PJSIP/10002-0000001b", "OUTNUM=00347xxx332970") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("PJSIP/10002-0000001b", "custom=PJSIP") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("PJSIP/10002-0000001b", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)") in new stack
    -- Executing [s@macro-dialout-trunk:16] ExecIf("PJSIP/10002-0000001b", "0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))") in new stack
    -- Executing [s@macro-dialout-trunk:17] Macro("PJSIP/10002-0000001b", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] Set("PJSIP/10002-0000001b", "CLIP=49610xxxxxxx20") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:2] Set("PJSIP/10002-0000001b", "CLIP=49610xxxxxxx20") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:3] Set("PJSIP/10002-0000001b", "CLIP=49610xxxxxxx20") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:4] Set("PJSIP/10002-0000001b", "CALLERID(name)=49610xxxxxxx20") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:5] Set("PJSIP/10002-0000001b", "CALLERID(num)=49610xxxxxxx20") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:6] SIPAddHeader("PJSIP/10002-0000001b", "P-Preferred-Identity:<sip:[email protected]>") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("PJSIP/10002-0000001b", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:19] ExecIf("PJSIP/10002-0000001b", "1?Set(CONNECTEDLINE(num,i)=00347xxx332970)") in new stack
    -- Executing [s@macro-dialout-trunk:20] ExecIf("PJSIP/10002-0000001b", "1?Set(CONNECTEDLINE(name,i)=CID:49610xxxxxxx20)") in new stack
    -- Executing [s@macro-dialout-trunk:21] ExecIf("PJSIP/10002-0000001b", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)49610xxxxxxx20)") in new stack
    -- Executing [s@macro-dialout-trunk:xxx] GotoIf("PJSIP/10002-0000001b", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:23] Dial("PJSIP/10002-0000001b", "PJSIP/00347xxx332970@2xxxxxxxt0,300,Tt") in new stack
    -- Called PJSIP/00347xxx332970@2xxxxxxxt0
    -- PJSIP/2xxxxxxxt0-0000001c is making progress passing it to PJSIP/10002-0000001b
       > 0x6f7d3c60 -- Probation passed - setting RTP source address to 217.10.77.242:15640
       > 0x7620d4a8 -- Probation passed - setting RTP source address to 192.168.50.171:553xxx
    -- PJSIP/2xxxxxxxt0-0000001c answered PJSIP/10002-0000001b
    -- Channel PJSIP/2xxxxxxxt0-0000001c joined 'simple_bridge' basic-bridge <04bae2d2-ccd8-44a3-a7fb-f0632fc4d421>
    -- Channel PJSIP/10002-0000001b joined 'simple_bridge' basic-bridge <04bae2d2-ccd8-44a3-a7fb-f0632fc4d421>
    -- Channel PJSIP/2xxxxxxxt0-0000001c left 'simple_bridge' basic-bridge <04bae2d2-ccd8-44a3-a7fb-f0632fc4d421>
    -- Channel PJSIP/10002-0000001b left 'simple_bridge' basic-bridge <04bae2d2-ccd8-44a3-a7fb-f0632fc4d421>
  == Spawn extension (macro-dialout-trunk, s, 23) exited non-zero on 'PJSIP/10002-0000001b' in macro 'dialout-trunk'
  == Spawn extension (from-internal, 00347xxx332970, 6) exited non-zero on 'PJSIP/10002-0000001b'
    -- Executing [h@from-internal:1] Macro("PJSIP/10002-0000001b", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("PJSIP/10002-0000001b", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("PJSIP/10002-0000001b", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("PJSIP/10002-0000001b", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'PJSIP/10002-0000001b' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/10002-0000001b'


habe soeben mit dem support telefoniert: Es wird kein p-preffered empfangen.
 
Ich habe es gerade nochmals bei mir angeschaut:
SIPGATE-Trunking erwartet einen PAI-Header. Den brauchst Du an sich auch nicht manuell einzufügen, bei PJSIP sollte die Option

endpoint/send_pai = yes

in der Trunk-Konfiguration das Problem beheben (siehe: https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard). (Zum Vergleich: Bei sip.conf ist das sendrpid=pai)
Wichtig ist dabei nur, dass die CALLERID zuvor im E164-Format aufbereitet wurde. Der eigentliche Header wäre dann:

P-Asserted-Identity: "49XXXXXXXXXX" <sip:[email protected]>
 
den PJSIP_Wizzard kann ich nicht laden... wie habe ich die Möglichkeit hm nachtrglich zu installieren?
In der GUI Trunkeinstellungen kann ich nichts zu RPID finden.

Hier habe ich folgenden gesetzt:
jeweiligen Extension:
Trust RPID = yes
Send RPID = P-Assert-Identity Header (andere währe Remote-Party ID Header)
 
Kostenlos!

Statistik des Forums

Themen
248,854
Beiträge
2,302,894
Mitglieder
378,503
Neuestes Mitglied
Gerald78