Bom dia pessoal,<br><br>Seguinte, compramos uma placa Aligera AP412. Estou com essa placa já tem seis meses, e sempre tenho problemas diferentes com ela.<br>O cenário desse cliente é o seguinte:<br><br>Asterisk puro: 1.6.2.17<br>
asterisk-addons: 1.6.2.2<br>Dahdi-linux: 2.4.0<br>Dahdi-Tools: 2.4.0<br>Driver da placa AP400 Rev: 13<br><br>PABX ALCATEL &lt;ISDN&gt;  ASTERISK ALIGERA SPAN2 &lt;VARIOS RAMAIS SIP&gt; ASTERISK ALIGERA SPAN1 &lt;R2&gt;<br>
Ocorre que o PABX Alcatel não consegue fazer transferencia esterna de ramais analogicos, logo uso a facilidade de transferencia do ASTERISK para transferir chamadas via atxfer (isso quando uma chamada vem da operadora, passa pelo asterisk e vai para o pabx, e o usuário do pabx alcatel precisa transferir essa chamada para um ramal SIP do asterisk) ai por algum motivo o dtmf discado no ramal analogico da alcatel chega no asterisk errado, ou não chega, ou chega somente parte dos digitos.<br>
A principio penser ser um problema refente a sinalização ISDN entre o PABX e o ASTERISK, embora o DMTF passe por audio ...<br>Mas ai vi que a URA (que atende as chamadas que vem pela SPAN1) também não funciona direito, ocorre a mesma coisa com os digitos DTMF.<br>
<br>O estranho é que colocando uma placa Khomp funcionou e uma Digivoice também funcionou, parece que o problema só ocorre quando usa DAHDI. Alguém ja passou por isso? tem ideia do que posso tentar fazer?<br><br><br>Estou tendo uma péssima impressão com a Aligera não só por isso, e o suporte deles simplesmente me disse que o DTMF não vai funcionar 100% e que não tem o que fazer.<br>
Mas não só por isso, desde que estou com essa placa, sempre tem um problema ou outro.<br><br>Abaixo o meu chan_dahdi.conf, system.conf e o features.conf<br clear="all"><br>chan_dahdi<br>[trunkgroups]<br>[channels]<br>;<br>
switchtype=euroisdn<br>language=pt_BR<br>usecallerid=yes<br>callwaiting=yes<br>usecallingpres=yes<br>callwaitingcallerid=yes<br>threewaycalling=yes<br>transfer=yes<br>canpark=yes<br>cancallforward=yes<br>callreturn=yes<br>
echocancel=yes<br>echocancelwhenbridged=yes<br>overlapdial=yes<br>faxdetect=both<br>;<br>;signalling=mfcr2<br>mfcr2_variant=br<br>mfcr2_get_ani_first=no<br>mfcr2_max_ani=20<br>mfcr2_max_dnis=4<br>mfcr2_category=national_subscriber<br>
<br>mfcr2_advanced_protocol_file=/etc/r2proto.conf<br><br>mfcr2_allow_collect_calls=no<br>mfcr2_double_answer=no<br><br>signalling=mfcr2<br>context=entrada<br>group=1<br>channel=&gt;1-15,17-31<br><br>switchtype=euroisdn<br>
signalling=pri_net<br>context=para-pstn<br>group=2<br>channel=&gt;32-46,48-62<br><br><br>system.conf<br>loadzone = br<br>defaultzone=br<br>#<br>#<br>span=1,1,0,cas,hdb3<br>cas=1-15,17-31:1101<br>#<br>span=2,0,0,ccs,hdb3<br>
bchan=32-46<br>dchan=47<br>bchan=48-62<br>#<br><br>features.conf<br>;<br>; Sample Call Features (parking, transfer, etc) configuration<br>;<br><br>[general]<br>parkext =&gt; 700            ; What extension to dial to park    (all parking lots)<br>
parkpos =&gt; 701-720        ; What extensions to park calls on. (defafult parking lot)<br>                ; These needs to be numeric, as Asterisk starts from the start position<br>                ; and increments with one for the next parked call.<br>
;context =&gt; parkercalls        ; Which context parked calls are in (default parking lot)<br>context =&gt; ramais        ; Which context parked calls are in (default parking lot)<br>;parkinghints = no        ; Add hints priorities automatically for parking slots (default is no).<br>
parkingtime =&gt; 45        ; Number of seconds a call can be parked for <br>                ; (default is 45 seconds)<br>;comebacktoorigin = yes    ; Whether to return to the original calling extension upon parking<br>                ; timeout or to send the call to context &#39;parkedcallstimeout&#39; at<br>
                ; extension &#39;s&#39;, priority &#39;1&#39; (default is yes).<br>;courtesytone = beep        ; Sound file to play to the parked caller <br>                ; when someone dials a parked call<br>                ; or the Touch Monitor is activated/deactivated.<br>
;parkedplay = caller        ; Who to play the courtesy tone to when picking up a parked call<br>                ; one of: parked, caller, both  (default is caller)<br>;parkedcalltransfers = caller   ; Enables or disables DTMF based transfers when picking up a parked call.<br>
                                ; one of: callee, caller, both, no (default is no)<br>;parkedcallreparking = caller   ; Enables or disables DTMF based parking when picking up a parked call.<br>                                ; one of: callee, caller, both, no (default is no)<br>
;parkedcallhangup = caller      ; Enables or disables DTMF based hangups when picking up a parked call.<br>                                ; one of: callee, caller, both, no (default is no)<br>;parkedcallrecording = caller   ; Enables or disables DTMF based one-touch recording when picking up a parked call.<br>
                                ; one of: callee, caller, both, no (default is no)<br>;adsipark = yes            ; if you want ADSI parking announcements<br>;findslot =&gt; next        ; Continue to the &#39;next&#39; free parking space. <br>
                ; Defaults to &#39;first&#39; available<br>;parkedmusicclass=default    ; This is the MOH class to use for the parked channel<br>                ; as long as the class is not set on the channel directly<br>
                ; using Set(CHANNEL(musicclass)=whatever) in the dialplan<br><br>transferdigittimeout =&gt; 5    ; Number of seconds to wait between digits when transferring a call<br>                ; (default is 3 seconds)<br>
;xfersound = beep        ; to indicate an attended transfer is complete<br>;xferfailsound = beeperr    ; to indicate a failed transfer<br>pickupexten = 48        ; Configure the pickup extension. (default is *8)<br>;pickupsound = beep        ; to indicate a successful pickup (default: no sound)<br>
;pickupfailsound = beeperr    ; to indicate that the pickup failed (default: no sound)<br>;featuredigittimeout = 1000    ; Max time (ms) between digits for <br>                            ; feature activation  (default is 1000 ms)<br>
;atxfernoanswertimeout = 10 ; Timeout for answer on attended transfer default is 15 seconds.<br>;atxferdropcall = no        ; If someone does an attended transfer, then hangs up before the transferred<br>                            ; caller is connected, then by default, the system will try to call back the<br>
                            ; person that did the transfer.  If this is set to &quot;yes&quot;, the callback will<br>                            ; not be attempted and the transfer will just fail.<br>atxferloopdelay = 10       ; Number of seconds to sleep between retries (if atxferdropcall = no)<br>
atxfercallbackretries = 5  ; Number of times to attempt to send the call back to the transferer.<br>                            ; By default, this is 2.<br><br>;<br>;*** Define another parking lot<br>;<br>; You can set parkinglot with the CHANNEL dialplan function<br>
; or by setting &#39;parkinglot&#39; directly in the channel configuration file.<br>;<br>;[parkinglot_edvina]<br>;context =&gt; edvinapark<br>;parkpos =&gt; 800-850<br>;findslot =&gt; next<br><br>; Note that the DTMF features listed below only work when two channels have answered and are bridged together.<br>
; They can not be used while the remote party is ringing or in progress. If you require this feature you can use<br>; chan_local in combination with Answer to accomplish it.<br><br><br>[featuremap]<br>blindxfer =&gt; *3        ; Blind transfer  (default is #1) -- Make sure to set the T and/or t option in the Dial() or Queue() app call!<br>
;disconnect =&gt; *0        ; Disconnect  (default is *0) -- Make sure to set the H and/or h option in the Dial() or Queue() app call!<br>;automon =&gt; *1            ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call!<br>
atxfer =&gt; *2            ; Attended transfer  -- Make sure to set the T and/or t option in the Dial() or Queue()  app call!<br>;parkcall =&gt; #72        ; Park call (one step parking)  -- Make sure to set the K and/or k option in the Dial() app call!<br>
;automixmon =&gt; *3        ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call!<br><br>[applicationmap]<br>; Note that the DYNAMIC_FEATURES channel variable must be set to use the features<br>
; defined here.  The value of DYNAMIC_FEATURES should be the names of the features<br>; to allow the channel to use separated by &#39;#&#39;.  For example:<br>;<br>;    Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)<br>
;<br>; (Note: The two leading underscores allow these feature settings to be set on<br>;  on the outbound channels, as well.  Otherwise, only the original channel<br>;  will have access to these features.)<br>;<br>; The syntax for declaring a dynamic feature is any of the following:<br>
;<br>;&lt;FeatureName&gt; =&gt; &lt;DTMF_sequence&gt;,&lt;ActivateOn&gt;[/&lt;ActivatedBy&gt;],&lt;Application&gt;[,&lt;AppArguments&gt;[,MOH_Class]]<br>;&lt;FeatureName&gt; =&gt; &lt;DTMF_sequence&gt;,&lt;ActivateOn&gt;[/&lt;ActivatedBy&gt;],&lt;Application&gt;[,&quot;&lt;AppArguments&gt;&quot;[,MOH_Class]]<br>
;&lt;FeatureName&gt; =&gt; &lt;DTMF_sequence&gt;,&lt;ActivateOn&gt;[/&lt;ActivatedBy&gt;],&lt;Application&gt;([&lt;AppArguments&gt;])[,MOH_Class]<br><br>;<br>;  FeatureName   -&gt; This is the name of the feature used in when setting the<br>
;                   DYNAMIC_FEATURES variable to enable usage of this feature.<br>;  DTMF_sequence -&gt; This is the key sequence used to activate this feature.<br>;  ActivateOn    -&gt; This is the channel of the call that the application will be executed<br>
;                   on. Valid values are &quot;self&quot; and &quot;peer&quot;. &quot;self&quot; means run the<br>;                   application on the same channel that activated the feature. &quot;peer&quot;<br>;                   means run the application on the opposite channel from the one that<br>
;                   has activated the feature.<br>;  ActivatedBy   -&gt; This is which channel is allowed to activate this feature. Valid<br>;                   values are &quot;caller&quot;, &quot;callee&quot;, and &quot;both&quot;. &quot;both&quot; is the default.<br>
;                   The &quot;caller&quot; is the channel that executed the Dial application, while<br>;                   the &quot;callee&quot; is the channel called by the Dial application.<br>;  Application   -&gt; This is the application to execute.<br>
;  AppArguments  -&gt; These are the arguments to be passed into the application.  If you need<br>;                   commas in your arguments, you should use either the second or third<br>;                   syntax, above.<br>
;  MOH_Class     -&gt; This is the music on hold class to play while the idle<br>;                   channel waits for the feature to complete. If left blank,<br>;                   no music will be played.<br>;<br><br>;<br>
; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk<br>;   applications. When applications are used in extensions.conf, they are executed<br>;   by the PBX core. In this case, these applications are executed outside of the<br>
;   PBX core, so it does *not* make sense to use any application which has any<br>;   concept of dialplan flow. Examples of this would be things like Macro, Goto,<br>;   Background, WaitExten, and many more.<br>;<br>; Enabling these features means that the PBX needs to stay in the media flow and<br>
; media will not be re-directed if DTMF is sent in the media stream.<br>;<br>; Example Usage:<br>;<br>;testfeature =&gt; #9,peer,Playback,tt-monkeys  ;Allow both the caller and callee to play<br>;                                            ;tt-monkeys to the opposite channel<br>
;<br>; Set arbitrary channel variables, based upon CALLERID number (Note that the application<br>; argument contains commas)<br>;retrieveinfo =&gt; #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})})<br>
;<br>;pauseMonitor   =&gt; #1,self/callee,Pausemonitor     ;Allow the callee to pause monitoring<br>;                                                  ;on their channel<br>;unpauseMonitor =&gt; #3,self/callee,UnPauseMonitor   ;Allow the callee to unpause monitoring<br>
;                                                  ;on their channel<br><br>; Dynamic Feature Groups:<br>;   Dynamic feature groups are groupings of features defined in [applicationmap]<br>;   that can have their own custom key mappings.  To give a channel access to a dynamic<br>
;   feature group, add the group name to the value of the DYNAMIC_FEATURES variable.<br>;<br>; example:<br>; [myGroupName]        ; defines the group named myGroupName<br>; testfeature =&gt; #9    ; associates testfeature with the group and the keycode &#39;#9&#39;.<br>
; pauseMonitor =&gt;      ; associates pauseMonitor with the group and uses the keycode specified<br>;                      ; in the [applicationmap].<br><br><br>Grato por qualquer ajuda.<br>-- <br><font face="Calibri">Dilceu Luiz Pazinatto<br>
Electronics technician<br>Engineering students</font><br>