Ausgehende Rufnummer mit Asterisk/FreePBX übertragen

zfxn

Neuer User
Mitglied seit
20 Okt 2008
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich möchte meine Festnetznummer über sipgate bei ausgehenden Anrufen übertragen. Telefonieren funktioniert in beide Richtungen einwandfrei.

Funktioniert die Rufnummerübermittlung bei jemandem mit FreePBX bzw.
Trixbox (müsste die gleiche Konfiguration sein) ?
Bzw. kann mir jemand sagen, welche Variable in der Asterisk Konfiguration genau die Rufnummer enthalten muss?
Bei mir wird soweit ich das im Debug-Output vom Asterisk gesehen hab nur CALLERID(all) gesetzt !?!

Ich verwende folgende Versionen:
Ubuntu Server 8.04
bristuff-0.4.0-RC4-xr4
Asterisk 1.4.22
freepbx-2.5.0

Viele Grüße.
 

zfxn

Neuer User
Mitglied seit
20 Okt 2008
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Gelöst

Problem gelöst...

hab in der extensions_override_freepbx.conf
den context [macro-outbound-callerid] (aus der extensions_additional.conf)
so überschrieben, dass die "Variable" CALLERID(name)=4989${USEROUTCID}
gesetzt wird.

[macro-outbound-callerid]
include => macro-outbound-callerid-custom
exten => s,1,ExecIf($["${CALLINGPRES_SV}" != ""],SetCallerPres,${CALLINGPRES_SV})
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""],Set,REALCALLERIDNUM=${CALLERID(number)})
exten => s,n(start),GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid)
exten => s,n,Set(USEROUTCID=${REALCALLERIDNUM})
exten => s,n,GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "foo"]?bypass)
exten => s,n(normcid),Set(USEROUTCID=${DB(AMPUSER/${REALCALLERIDNUM}/outboundcid)})
exten => s,n(bypass),Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)})
exten => s,n,Set(TRUNKOUTCID=${OUTCID_${ARG1}})
exten => s,n,GotoIf($[ $["${EMERGENCYROUTE:1:2}" = ""] | $["${EMERGENCYCID:1:2}" = ""] ]?trunkcid)
exten => s,n,Set(CALLERID(all)=${EMERGENCYCID})
exten => s,n(exit),MacroExit()
exten => s,n(trunkcid),ExecIf($["${TRUNKOUTCID:1:2}" != ""],Set,CALLERID(all)=${TRUNKOUTCID})
exten => s,n(usercid),GotoIf($["${USEROUTCID:1:2}" = ""]?exit)
exten => s,n,Set(CALLERID(all)=${USEROUTCID})
exten => s,n(usercid),GotoIf($["${USEROUTCID:1:2}" = ""]?exit)
exten => s,n,Set(CALLERID(all)=${USEROUTCID})
exten => s,n,ExecIf($["${TRUNKOUTCID}" = "4989123456789"],Set,CALLERID(name)=4989${USEROUTCID})
exten => s,n(hidecid),ExecIf($["${CALLERID(name)}"="hidden"],SetCallerPres,prohib_passed_screen)


Die eingefügte Zeile bewirkt, dass CALLERID(name) nur neugesetzt wird wenn im verwendete Trunk als "Outbound Caller ID" 4989123456789 gesetzt ist.

exten => s,n,ExecIf($["${TRUNKOUTCID}" = 4989123456789"],Set,CALLERID(name)=4989${USEROUTCID})


Die Lösung ist sicher nicht die sauberste aber funktioniert...
...vielleicht kann man auch in irgendeinem Trunk-spezifischen context CALLERID(name) setzen und die Vorwahl ohne 0 mit 49 davor aus irgendeiner Variable ziehen.

Grüße
 

zfxn

Neuer User
Mitglied seit
20 Okt 2008
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Problem gelöst...

hab in der extensions_override_freepbx.conf
den context [macro-outbound-callerid] (aus der extensions_additional.conf)
so überschrieben, dass die "Variable" CALLERID(name)=4989${USEROUTCID}
gesetzt wird.

[macro-outbound-callerid]
include => macro-outbound-callerid-custom
exten => s,1,ExecIf($["${CALLINGPRES_SV}" != ""],SetCallerPres,${CALLINGPRES_SV})
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""],Set,REALCALLERIDNUM=${CALLERID(number)})
exten => s,n(start),GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid)
exten => s,n,Set(USEROUTCID=${REALCALLERIDNUM})
exten => s,n,GotoIf($["foo${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "foo"]?bypass)
exten => s,n(normcid),Set(USEROUTCID=${DB(AMPUSER/${REALCALLERIDNUM}/outboundcid)})
exten => s,n(bypass),Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)})
exten => s,n,Set(TRUNKOUTCID=${OUTCID_${ARG1}})
exten => s,n,GotoIf($[ $["${EMERGENCYROUTE:1:2}" = ""] | $["${EMERGENCYCID:1:2}" = ""] ]?trunkcid)
exten => s,n,Set(CALLERID(all)=${EMERGENCYCID})
exten => s,n(exit),MacroExit()
exten => s,n(trunkcid),ExecIf($["${TRUNKOUTCID:1:2}" != ""],Set,CALLERID(all)=${TRUNKOUTCID})
exten => s,n(usercid),GotoIf($["${USEROUTCID:1:2}" = ""]?exit)
exten => s,n,Set(CALLERID(all)=${USEROUTCID})
exten => s,n(usercid),GotoIf($["${USEROUTCID:1:2}" = ""]?exit)
exten => s,n,Set(CALLERID(all)=${USEROUTCID})
exten => s,n,ExecIf($["${TRUNKOUTCID}" = "4989123456789"],Set,CALLERID(name)=4989${USEROUTCID})
exten => s,n(hidecid),ExecIf($["${CALLERID(name)}"="hidden"],SetCallerPres,prohib_passed_screen)


Die eingefügte Zeile bewirkt, dass CALLERID(name) nur neugesetzt wird wenn im verwendete Trunk als "Outbound Caller ID" 4989123456789 gesetzt ist.

exten => s,n,ExecIf($["${TRUNKOUTCID}" = 4989123456789"],Set,CALLERID(name)=4989${USEROUTCID})


Die Lösung ist sicher nicht die sauberste aber funktioniert...
...vielleicht kann man auch in irgendeinem Trunk-spezifischen context CALLERID(name) setzen und die Vorwahl ohne 0 mit 49 davor aus irgendeiner Variable ziehen.

Grüße
Zu erwähnen wäre vielleicht noch, dass ich bei meinen Extensions die Outbound CID immer auf die MSN ohne Vorwahl gesetzt hab.