Hallo liebe VoIP Gemeinde,
ich spiele seit was längerer Zeit mit Asterisk 1.6.2 rum und einer AVM C4.
Klappt auch alles wunderbar.
Nur ein kleines Problem an dem ich jetzt schon länger hocke kriege ich nicht in den Griff.
Wenn ich internationale Vorwahlen einsetze laufen die anscheinend ins leere.
am besten lässt sich das nachstellen indem ich mein eigenes Handy anrufe.
Mit der ganz normalen 0162****** Nummer kein Problem, sobald ich dem Asterisk allerdings 0049162****** übergebe tutet es zwar im Headset, aber der Anruf wird nicht zu meinem Handy durchgestellt.
Das unser Provider keine internationalen Rufnummern unterstützt ist auszuschliessen, da wir derzeit mit der selben Anlage unter anderer Software internationale Gespräche führen können.
Hier die Configs:
/etc/isdn/capi.conf
/etc/asterisk/capi.conf
und hier die extensions.conf (ist eine eigene, über die hauptdatei eingebunden)
So ich hoffe ich habe beim verstümmeln der extensions keine Fehler eingebaut
Die ausgeschriebenen Nummern habe ich durch * ersetzt.
Sollten noch konfigs fehlen werd ich sie natürlich nachreichen.
Testen kann ich das ganze leider immer nur am Wochenende, daher kann es was dauern bis ich reaktion auf hilfestellungen zeige.
Danke im vorraus
ich spiele seit was längerer Zeit mit Asterisk 1.6.2 rum und einer AVM C4.
Klappt auch alles wunderbar.
Nur ein kleines Problem an dem ich jetzt schon länger hocke kriege ich nicht in den Griff.
Wenn ich internationale Vorwahlen einsetze laufen die anscheinend ins leere.
am besten lässt sich das nachstellen indem ich mein eigenes Handy anrufe.
Mit der ganz normalen 0162****** Nummer kein Problem, sobald ich dem Asterisk allerdings 0049162****** übergebe tutet es zwar im Headset, aber der Anruf wird nicht zu meinem Handy durchgestellt.
Das unser Provider keine internationalen Rufnummern unterstützt ist auszuschliessen, da wir derzeit mit der selben Anlage unter anderer Software internationale Gespräche führen können.
Hier die Configs:
/etc/isdn/capi.conf
Code:
# card file proto io irq mem cardnr options
#b1isa b1.t4 DSS1 0x150 7 - - P2P
#b1pci b1.t4 DSS1 - - - -
c4 c4.bin DSS1 - - - - P2P
#c4 - DSS1 - - - -
#c4 - DSS1 - - - - P2P
#c4 - DSS1 - - - - P2P
#c2 c2.bin DSS1 - - - -
#c2 - DSS1 - - - -
#t1isa t1.t4 DSS1 0x340 9 - 0
#t1pci t1.t4 DSS1 - - - -
#fcpci - - - - - -
#fcpcmcia - - - - - -
#fcusb - - - - - -
#fxusb - - - - - -
#fcclassic - - 0x150 10 - -
#fcdsl fdslbase.bin DSS1 - - - -
#fcdsl2 fdsl2base.bin DSS1 - - - -
#fcdslsl fdssbase.bin DSS1 - - - -
#fcdslslusb fdlubase.frm DSS1 - - - -
#fcdslusba fdlabase.frm DSS1 - - - -
#fcdslusb2 fds2base.frm DSS1 - - - -
#fcdslusb fdsubase.frm DSS1 - - - -
/etc/asterisk/capi.conf
Code:
;
; CAPI config
;
;
; general section
[general]
nationalprefix=0 ; or for example "+49"
internationalprefix=00 ; or for example "+"
rxgain=1.0 ;linear receive gain (1.0 = no change)
txgain=1.0 ;linear transmit gain (1.0 = no change)
language=de ;set default language
;ulaw=yes ;set this, if you live in u-law world instead of a-law
;jb..... ;with Asterisk 1.4 you can configure jitterbuffer,
;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.
; interface sections ...
[ISDN1] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
;Use one interface section for each isdn port!
;ntmode=yes ;if isdn card operates in nt mode, set this to yes
isdnmode=MSN ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
;when using NT-mode, 'DID' should be set in any case
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123 ;set a default caller id to that interface for dial-out,
;this caller id will be used when dial option 'd' is set.
;controller=0 ;ISDN4BSD default
;controller=7 ;ISDN4BSD USB default
controller=1 ;capi controller number of this interface/port
group=1 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=on ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on ;in addition to softdtmf, you can use relaxed dtmf detection
faxdetect=off ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
;outgoing calls. (default='off', possible values: 'incoming','outgoing','both')
faxdetecttime=0 ;Only detect faxes during the first 'n' seconds of the call.
;(default '0' meaning for the whole duration of the call)
accountcode=351 ;PBX accountcode to use in CDRs
;amaflags=default;AMA flags for CDR ('default', 'omit', 'billing', or 'documentation')
context=isdn-in ;context for incoming calls
;holdtype=hold ;when the PBX puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and the PBX may
;play MOH.
immediate=yes ;DID: immediate start of pbx with extension 's' if no digits were
; received on incoming call (no destination number yet)
;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
; info like REDIRECTINGNUMBER may be lost, but this is necessary for
; drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1 ;_VERY_PRIMITIVE_ echo suppression. Disable this before you start recording voicemail
;or your files may get choppy. (you can use capicommand(echosquelch|no) for this)
;echocancel=yes ;Dialogic Diva (Capi) echo cancelation (yes=g165)
;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64 ;echo cancel tail setting (default=0 for maximum)
;echocancelnlp=1 ;activate non-linear-processing; this improves echo cancel ratio, but might
;incorporate variable gain in the signal path.
;bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;PBX call group
;pickupgroup=1 ;PBX pickup group (which call groups are we allowed to pickup)
;transfergroup=1 ;Controller(s) where a transfer on native bridge is allowed to.
;language=de ;set language for this device (overwrites default language)
;disallow=all ;RTP codec selection (valid with Dialogic Diva only)
;allow=all ;RTP codec selection (valid with Dialogic Diva only)
devices=2 ;number of concurrent calls (b-channels) on this controller
;(2 makes sense for single BRI, 30/23 for PRI/T1)
;jb..... ;with Asterisk 1.4 you can configure jitterbuffer,
;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.
;qsig=1 ;enable use of Q.SIG extensions. ECMA Variant
;qsig_prnum=1234 ;enable inbound bridging - this should be an QSIG-network-wide unique number
[ISDN2] ;name not starting with 'g' or 'contr'.
;Use one interface section for each isdn port!
;ntmode=yes ;if isdn card operates in nt mode, set this to yes
isdnmode=MSN ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
;when using NT-mode, 'DID' should be set in any case
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123 ;set a default caller id to that interface for dial-out,
;this caller id will be used when dial option 'd' is set.
;controller=0 ;ISDN4BSD default
;controller=7 ;ISDN4BSD USB default
controller=2 ;capi controller number of this interface/port
group=1 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=on ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on ;in addition to softdtmf, you can use relaxed dtmf detection
faxdetect=off ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
;outgoing calls. (default='off', possible values: 'incoming','outgoing','both')
faxdetecttime=0 ;Only detect faxes during the first 'n' seconds of the call.
;(default '0' meaning for the whole duration of the call)
accountcode=351 ;PBX accountcode to use in CDRs
;amaflags=default;AMA flags for CDR ('default', 'omit', 'billing', or 'documentation')
context=isdn-in ;context for incoming calls
;holdtype=hold ;when the PBX puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and the PBX may
;play MOH.
immediate=yes ;DID: immediate start of pbx with extension 's' if no digits were
; received on incoming call (no destination number yet)
;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
; info like REDIRECTINGNUMBER may be lost, but this is necessary for
; drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1 ;_VERY_PRIMITIVE_ echo suppression. Disable this before you start recording voicemail
;or your files may get choppy. (you can use capicommand(echosquelch|no) for this)
;echocancel=yes ;Dialogic Diva (Capi) echo cancelation (yes=g165)
;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64 ;echo cancel tail setting (default=0 for maximum)
;echocancelnlp=1 ;activate non-linear-processing; this improves echo cancel ratio, but might
;incorporate variable gain in the signal path.
;bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;PBX call group
;pickupgroup=1 ;PBX pickup group (which call groups are we allowed to pickup)
;transfergroup=1 ;Controller(s) where a transfer on native bridge is allowed to.
;language=de ;set language for this device (overwrites default language)
;disallow=all ;RTP codec selection (valid with Dialogic Diva only)
;allow=all ;RTP codec selection (valid with Dialogic Diva only)
devices=2 ;number of concurrent calls (b-channels) on this controller
;(2 makes sense for single BRI, 30/23 for PRI/T1)
;jb..... ;with Asterisk 1.4 you can configure jitterbuffer,
;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.
;qsig=1 ;enable use of Q.SIG extensions. ECMA Variant
;qsig_prnum=1234 ;enable inbound bridging - this should be an QSIG-network-wide unique number
und hier die extensions.conf (ist eine eigene, über die hauptdatei eingebunden)
Code:
[XXX]
;SIP status Hints
#include hints.conf
;Konferenzen
exten => _20X,1,Meetme(${EXTEN},Mc)
include => isdn-in
[isdn-in]
exten => _X.,1,SET(MAIL=${SIPPEER(${CALLERID(num)},mailbox)})
;Ausgehende Anrufe
exten => _0X.,2,SET(EXTERN=1)
exten => _0X.,3,SET(MAILBODY=Gefuehrtes Gespraech mit ${EXTEN:1} am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)})
exten => _0X.,4,Dial(CAPI/ISDN1/${EXTEN:1},30,r)
exten => _0X.,5,Dial(CAPI/ISDN2/${EXTEN:1},30,r)
;Kontaktbucheinträge mit +49 am Anfang werden über diesen Header geleitet
;exten => _49.,2,SET(EXTERN=1)
;exten => _49.,3,SET(MAILBODY=Gefuehrtes Gespraech mit 0${EXTEN:2} am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)})
;exten => _49.,4,Dial(CAPI/ISDN1/0${EXTEN:2}/b,30)
;exten => _49.,5,Dial(CAPI/ISDN2/0${EXTEN:2}/b,30)
include => tag
[tag]
;Variablen setzen
exten => _X.,2,SET(EXTERN=0)
exten => _X.,3,SET(MAIL=${SIPPEER(${EXTEN:-2},mailbox)})
exten => _X.,4,EXECIF($[${EXTEN:-2} = 54]?SET([email protected]))
exten => _X.,5,EXECIF($[${EXTEN:-2} = 55]?SET([email protected]))
exten => _X.,6,GotoIf($[${EXTERN} = 1]?11)
exten => _X.,7,EXECIF($[${EXTEN:-2} = 56]?SET([email protected]))
exten => _X.,8,SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht sie zu erreichen.)
exten => _X.,9,SET(CALLER=${CALLERID(num)})
exten => _X.,10,SET(CALLED=${SIPPEER(${EXTEN:-2},callerid_name)})
;Spezielle Nummern: Mr. x
exten => _******88,11,SET(CALLERID(name)=Anruf für Mr. x)
exten => _******88,n,SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht Mr. x zu erreichen.)
exten => _******88,n,Dial(SIP/10&SIP/26,12)
;Spezielle Nummern: Mr. y
exten => _******90,11,SET(CALLERID(name)=Anruf für Mr. y)
exten => _******90,n,SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht Mr. y zu erreichen.)
exten => _******90,n,Dial(SIP/10,12)
;Interne Anrufe
exten => _XX,11,Dial(SIP/${EXTEN},12)
exten => _XX,n,SET(CALLERID(name)=Anruf für ${SIPPEER(${EXTEN},callerid_name)})
exten => _XX,n,Queue(${EXTEN},n)
exten => _XX,n,Queue(999,n)
exten => ******0,11,SET(CALLERID(name)=Anruf für Mr. z)
exten => ******0,n,SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht den Mr. z zu erreichen.)
exten => ******0,n,SET([email protected])
exten => ******0,n,Queue(01,n)
exten => ******0,n,Queue(999,n)
;Reguläre normalverteilung der einzelnen durchwahlen
exten => _******XX,11,Dial(SIP/${EXTEN:-2}, 12)
exten => _******XX,n,SET(CALLER=${CALLERID(num)})
exten => _******XX,n,SET(CALLERID(name)=Anruf für ${SIPPEER(${EXTEN:-2},callerid_name)})
exten => _******XX,n,EXECIF($[${EXTEN:-2} = 54]?SET(CALLERID(name)=Anruf für a))
exten => _******XX,n,EXECIF($[${EXTEN:-2} = 54]?SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht die a-nummer zu erreichen.))
exten => _******XX,n,EXECIF($[${EXTEN:-2} = 55]?SET(CALLERID(name)=Anruf für b))
exten => _******XX,n,EXECIF($[${EXTEN:-2} = 55]?SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht die b-nummer zu erreichen.))
exten => _******XX,n,EXECIF($[${EXTEN:-2} = 56]?SET(CALLERID(name)=Anruf für c))
exten => _******XX,n,EXECIF($[${EXTEN:-2} = 56]?SET(MAILBODY=${CALLERID(num)} hat am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} versucht die c-nummer zu erreichen.))
exten => _******XX,n,Queue(${EXTEN:-2},n)
exten => _******XX,n,Queue(999,n)
;###########################################################################################################
; Abschluss-exten
;###########################################################################################################
;h Extension - generiert die Statusmail des Anrufs / Wird immer aufgerufen nach beenden des Gesprächs
exten => h,1,GotoIf($[${EXTERN} = 1]?9)
exten => h,2,GotoIf($["${DIALSTATUS}" != "ANSWER"]?4)
exten => h,3,SET(MAILBODY=Gefuehrtes Gespraech mit ${CALLERID(num)} am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)})
exten => h,4,SET(SIPID=${FILTER(0123456789,${MEMBERINTERFACE})})
exten => h,5,SET(GENOMMEN=${SIPPEER(${SIPID},callerid_name)})
exten => h,6,SET(MAILGENOMMEN=${SIPPEER(${SIPID},mailbox)})
exten => h,7,GotoIf($["foo${GENOMMEN}" = "foo"]?9)
exten => h,8,SET(MAILBODY=${MAILBODY} ${GENOMMEN} hat das Gespraech uebernommen.)
exten => h,9,System(echo "${MAILBODY}" | mail -s "Anrufmitteilung" ${MAIL})
exten => h,10,SET(MAILBODY=Sie haben am ${STRFTIME(${EPOCH},Europe/Berlin,%d.%m.%Y, %H:%M:%S)} ein Gespraech von ${CALLERID(num)} fuer ${CALLED} uebernommen)
exten => h,11,System(echo "${MAILBODY}" | mail -s "Anrufmitteilung" ${MAILGENOMMEN})
So ich hoffe ich habe beim verstümmeln der extensions keine Fehler eingebaut
Die ausgeschriebenen Nummern habe ich durch * ersetzt.
Sollten noch konfigs fehlen werd ich sie natürlich nachreichen.
Testen kann ich das ganze leider immer nur am Wochenende, daher kann es was dauern bis ich reaktion auf hilfestellungen zeige.
Danke im vorraus