Hallo liebe Gemeinde,
da mir dieses Forum schon etliche male geholfen hat, will ich auch mal etwas dabei Steuern.
Ich habe lange im Internet gesucht und keine Lösung zu diesem Thema gefunden. Deshalb schreibe ich mal ein kleines How-To.
Folgendes muss in die extensions_custom.conf
[from-internal-custom]
exten => _6655XX,1,Macro(projektlogin|${EXTEN:3})
exten => _665,1,Macro(projektlogout)
[macro-projektlogin]
exten => s,1,Set(GLOBAL(PROJECTNUM)=${ARG1})
exten => s,n,NoOP(Agent an (${ARG1}) angemeldet)
exten => s,n,Playback(/custom/projektanmeldung)
exten => s,n,SayDigits(${ARG1})
exten => s,n,Hangup
[macro-projektlogout]
exten => s,1,Set(GLOBAL(PROJECTNUM)=0)
exten => s,n,NoOP(Agent ist abgemeldet)
exten => s,n,Hangup
Danach muss man in die extensions_override_freepbx.conf folgendes einfügen:
[macro-user-callerid]
include => macro-user-callerid-custom
exten => s,1,ExecIf($[${Projectnum} = 501],Set,REALCALLERIDNUM=Caller ID die gesendet werden soll)
exten => s,n,ExecIf($[${Projectnum} = 502],Set,REALCALLERIDNUM=Caller ID die gesendet werden soll)
exten => s,n,GotoIf($[${Projectnum} = 501]?mitnummer)
exten => s,n,GotoIf($[${Projectnum} = 502]?mitnummer)
exten => s,n,GotoIf($[${Projectnum} = 0]?ohnixdabei)
exten => s,n,GotoIf($[${Projectnum} =]?ohnixdabei)
exten => s,n(mitnummer),Set(CALLERID(all)=${REALCALLERIDNUM})
exten => s,n,Set(CALLERID(number)=${REALCALLERIDNUM})
exten => s,n,GoTo(continue)
exten => s,n(ohnixdabei),Set(AMPUSER=${IF($["foo${AMPUSER}" = "foo"]?${CALLERID(number)}:${AMPUSER})})
exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?report)
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""],Set,REALCALLERIDNUM=${CALLERID(number)})
exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => s,n,GotoIf($["x${AMPUSERCIDNAME:1:2}" = "x"]?report)
exten => s,n,Set(AMPUSERCID=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})})
exten => s,n,Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>)
exten => s,n,Set(REALCALLERIDNUM=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""],Set,CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})
exten => s,n(report),GotoIf($[ "${ARG1}" = "SKIPTTL" ]?continue)
exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])})
exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)
exten => s,n,Wait(${RINGTIMER})
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)
exten => s,n,Macro(hangupcall,)
exten => s,n,Congestion(20)
exten => s,n(continue),Noop(Using CallerID ${CALLERID(all)})
exten => h,1,Macro(hangupcall,)
; end of [macro-user-callerid]
Der veränderbare Teil ist rot markiert.
Nach einem Dialplan Reload sollte das ganze dann funktionieren.
Anmeldung Projekt: 6655XX
Abmeldung: 665
Das funktioniert folgendermaßen: Der Agent meldet sich mit seinem Telefon an dem Projekt an und somit wird eine Globale variabele "Projectnum" gesetzt. In der extension_override_freepbx kann man nun die ausgehenden Caller IDs anpassen die gesetzt werden.
Beim abmelden wird die variable "Projectnum" auf 0 gesetzt und somit wird die in FreePBX eingerichtete Caller ID wieder gesendet.
Ich hoffe dieses kleine How-To hilft jemandem weiter und muss somit nicht so lange suchen wie ich
da mir dieses Forum schon etliche male geholfen hat, will ich auch mal etwas dabei Steuern.
Ich habe lange im Internet gesucht und keine Lösung zu diesem Thema gefunden. Deshalb schreibe ich mal ein kleines How-To.
Folgendes muss in die extensions_custom.conf
[from-internal-custom]
exten => _6655XX,1,Macro(projektlogin|${EXTEN:3})
exten => _665,1,Macro(projektlogout)
[macro-projektlogin]
exten => s,1,Set(GLOBAL(PROJECTNUM)=${ARG1})
exten => s,n,NoOP(Agent an (${ARG1}) angemeldet)
exten => s,n,Playback(/custom/projektanmeldung)
exten => s,n,SayDigits(${ARG1})
exten => s,n,Hangup
[macro-projektlogout]
exten => s,1,Set(GLOBAL(PROJECTNUM)=0)
exten => s,n,NoOP(Agent ist abgemeldet)
exten => s,n,Hangup
Danach muss man in die extensions_override_freepbx.conf folgendes einfügen:
[macro-user-callerid]
include => macro-user-callerid-custom
exten => s,1,ExecIf($[${Projectnum} = 501],Set,REALCALLERIDNUM=Caller ID die gesendet werden soll)
exten => s,n,ExecIf($[${Projectnum} = 502],Set,REALCALLERIDNUM=Caller ID die gesendet werden soll)
exten => s,n,GotoIf($[${Projectnum} = 501]?mitnummer)
exten => s,n,GotoIf($[${Projectnum} = 502]?mitnummer)
exten => s,n,GotoIf($[${Projectnum} = 0]?ohnixdabei)
exten => s,n,GotoIf($[${Projectnum} =]?ohnixdabei)
exten => s,n(mitnummer),Set(CALLERID(all)=${REALCALLERIDNUM})
exten => s,n,Set(CALLERID(number)=${REALCALLERIDNUM})
exten => s,n,GoTo(continue)
exten => s,n(ohnixdabei),Set(AMPUSER=${IF($["foo${AMPUSER}" = "foo"]?${CALLERID(number)}:${AMPUSER})})
exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?report)
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""],Set,REALCALLERIDNUM=${CALLERID(number)})
exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => s,n,GotoIf($["x${AMPUSERCIDNAME:1:2}" = "x"]?report)
exten => s,n,Set(AMPUSERCID=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})})
exten => s,n,Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>)
exten => s,n,Set(REALCALLERIDNUM=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""],Set,CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})
exten => s,n(report),GotoIf($[ "${ARG1}" = "SKIPTTL" ]?continue)
exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])})
exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)
exten => s,n,Wait(${RINGTIMER})
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)
exten => s,n,Macro(hangupcall,)
exten => s,n,Congestion(20)
exten => s,n(continue),Noop(Using CallerID ${CALLERID(all)})
exten => h,1,Macro(hangupcall,)
; end of [macro-user-callerid]
Der veränderbare Teil ist rot markiert.
Nach einem Dialplan Reload sollte das ganze dann funktionieren.
Anmeldung Projekt: 6655XX
Abmeldung: 665
Das funktioniert folgendermaßen: Der Agent meldet sich mit seinem Telefon an dem Projekt an und somit wird eine Globale variabele "Projectnum" gesetzt. In der extension_override_freepbx kann man nun die ausgehenden Caller IDs anpassen die gesetzt werden.
Beim abmelden wird die variable "Projectnum" auf 0 gesetzt und somit wird die in FreePBX eingerichtete Caller ID wieder gesendet.
Ich hoffe dieses kleine How-To hilft jemandem weiter und muss somit nicht so lange suchen wie ich