i done this but not working
zmzimletctl configure /tmp/ch_bnc_asterisk_config.xml
zmmailboxdctl restart
after changes i used this command am i going wright
pls reply am doing this work from last 1 months but no success
Printable View
pls view this pics
Hello, all. We have just upgraded to Zimbra 7.1 (Release 7.1.0_GA_3140.RHEL5_64_20110329135300 CentOS5_64 NETWORK edition) and it looks like the zimlet is broken. We get the empty Asterisk PBX Integration Error dialog and the following in mailbox.log:
2011-04-25 23:11:07,724 WARN [btpool0-10://zimbra.pacifera.com/service/zimlet/ch_bnc_asterisk/asterisk.jsp?callee=2xxyyy7183] [] log - /service/zimlet/ch_bnc_asterisk/asterisk.jsp
org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP
PWC6197: An error occurred at line: 37 in the jsp file: /ch_bnc_asterisk/asterisk.jsp
PWC6199: Generated servlet error:
The method searchGal(String, ArrayList<Object>, ZMailbox.GalEntryType) in the type ZMailbox is not applicable for the arguments (String, String, ZMailbox.GalEntryType)
at org.apache.jasper.compiler.DefaultErrorHandler.jav acError(DefaultErrorHandler.java:123)
at org.apache.jasper.compiler.ErrorDispatcher.javacEr ror(ErrorDispatcher.java:296)
at org.apache.jasper.compiler.Compiler.generateClass( Compiler.java:376)
at org.apache.jasper.compiler.Compiler.compile(Compil er.java:437)
at org.apache.jasper.JspCompilationContext.compile(Js pCompilationContext.java:608)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:360)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:486)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:814)
at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(Se rvletHandler.java:390)
at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:218)
at org.mortbay.jetty.servlet.SessionHandler.handle(Se ssionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(Co ntextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebA ppContext.java:422)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispa tcher.java:330)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispa tcher.java:126)
at com.zimbra.cs.zimlet.ZimletResources.service(Zimle tResources.java:96)
at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1166)
at com.zimbra.cs.zimlet.ZimletFilter.doFilter(ZimletF ilter.java:240)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at com.zimbra.cs.servlet.SetHeaderFilter.doFilter(Set HeaderFilter.java:79)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at org.mortbay.servlet.UserAgentFilter.doFilter(UserA gentFilter.java:81)
at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter .java:132)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at com.zimbra.cs.servlet.ThrottlingFilter.doFilter(Th rottlingFilter.java:71)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(Se rvletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:218)
at org.mortbay.jetty.servlet.SessionHandler.handle(Se ssionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(Co ntextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebA ppContext.java:422)
at org.mortbay.jetty.handler.ContextHandlerCollection .handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at org.mortbay.jetty.handler.rewrite.RewriteHandler.h andle(RewriteHandler.java:230)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at org.mortbay.jetty.handler.DebugHandler.handle(Debu gHandler.java:77)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(Htt pConnection.java:543)
at org.mortbay.jetty.HttpConnection$RequestHandler.he aderComplete(HttpConnection.java:929)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser. java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpPa rser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnec tion.java:405)
at org.mortbay.io.nio.SelectChannelEndPoint.run(Selec tChannelEndPoint.java:410)
at org.mortbay.thread.BoundedThreadPool$PoolThread.ru n(BoundedThreadPool.java:451)
Any ideas what we can do to fix this? I tried redeploying the zimlet just in case but that did not help.
Either we need a real quick fix or we'll need to back out the upgrade. Thanks - John
For the time being I believe we can just remove the following code from asterisk.jspas we do not enable SearchGal by default for the Zimlet. I believe the problem has been caused by Bug 56016 – Need to be able to search gal by name, department, and email address so in theory problem requires another parameter adding to the zmailbox.searchGal() function.Code:} else if(this.searchGal) {
ZSearchGalResult zgalres = this.zmailbox.searchGal(phoneNbr,"",GalEntryType.all);
ZContact zcontact = null;
if (zgalres.getContacts().size()>=1) {
zcontact = zgalres.getContacts().get(0);
}
if(zcontact != null) {
String fname = this.getZContactAttr(zcontact,"firstName");
String lname = this.getZContactAttr(zcontact,"lastName");
String company = this.getZContactAttr(zcontact,"company");
zimletLog.debug("Gal fname: " + fname + " lname: " + lname + " company: " + company);
if(zgalres.getContacts().size() > 1 && company.length() > 0 ) {
searchRes = company;
}
else {
searchRes = fname + " " + lname;
}
}
}
That appears to have fixed the problem after fully redeploying, i.e,. rereading the configuration and flushing the cache by doing zmmailboxdctl stop and zmmailboxdctl start. Thanks - John
Stuart is exactly right about handling the problem of prepending the international dialing code to local calls in Asterisk rather than the zimlet. Here is a more in-depth explanation from our internal ticket for addressing this issue for those who may need more information:
We have a problem with the Zimbra Asterisk Integration zimlet where it will prepend the international dialing prefix (e.g., 011 in the US, 00 in the UK) before any numbers preceded by a +. Thus, international friendly phone entries (e.g., +1 (234) 567-8901) will be misdialed when called from their own country (e.g., calling the example given from the US dials 01112345678901).
I originally thought this is something which should be fixed in the Asterisk zimlet but then realized this was not only very difficult but illogical. The issue is really not a user issue but a PBX issue. For example, we could rewrite the zimlet to allow a user to set their current country but, it doesn't matter if the caller is calling from the US or the UK or China. The issue is from where the PBX is dialing.
I then thought of editing the zimlet to configure the country code for the PBX but that still seemed the wrong place and what about when we start routing between PBXs in different countries. Thus, it seems we should fix this at the PBX level.
We have a section in each client's dial plan which sets the appropriate caller id number and handles routing for national and international calls when allowed. I think this is the place to do the rewriting of the international dialing prefix. For example, in our company dial plan, we would do this in the c100 context just before the entry for identifying and routing international calls. We would add the following:
exten => _0111NXXNXXXXXX,1,ExecIf($[${CALLERID(num)} - 1000000 < 0]?Set(CALLERID(num)=2345678901))
exten => _0111NXXNXXXXXX,n,ExecIf($[${CALLERID(ani)} - 1000000 < 0]?Set(CALLERID(num)=2345678901))
exten => _0111NXXNXXXXXX,n,Goto(outbound-US,${EXTEN:3},1)
I've reviewed the list of all country codes and it appears that they are intelligently enough structured that directly matching a country code will not accidentally match another country code with a longer sequence of digits, e.g., we can safely say 0044 means we have a UK international dialing prefix in front of a UK number because there is no three digit international country code starting with 44. Likewise, there are not two or three digit country codes starting with 1.
Hope this helps someone else! Thanks Stuart.
hi gracedman,
jep it seems that search gal has changed in api. i am going to fix this in a new version of the zimlet. as soon as i can download the source code for 7.1 i am able to have a look at the changes there...
Need HELP...
i have installed zcs 6, zimlet for asterisk and asterisk server,,
anything goes right,, but when client A call to client B it can't happen, in GUI no error,, but
when i see in /opt/zimbra/log/mailbox.log i get error like
PWC6032: Unable to load tag handler class "com.zimbra.cs.taglib.ZimletConfig" for tag "z:zimletconfig"
i hope u will response my question, i'm sorry for my english...
i`ve installed the asterisk zimlet for 0.65,
and it was success.
i want to trunk into trixbox (asterisk server)
but i`ve new problem, that i can`t resolve with my self..... i really got stack
here my ch_bnc_asterisk_config.xml :
<zimletConfig name="ch_bnc_asterisk" version="0.65">
<!--
This settings be global or local, which means per host. If properties are in global scope host settings will be overwritten.
-->
<host name="swc.com">
<property name="astManagerIp">10.14.200.248</property>
<property name="astManagerPort">5038</property>
<property name="astManagerUser">zimbra</property>
<property name="astManagerSecret">switching</property>
<!--
Timeout for asterisk actions in [ms]
-->
<property name="astActionTimeout">8000</property>
<!--
Don't do Action ExtensionState before doing other actions. This may be useful because
the ExtensionState action does need hints in dialplan to work correctly. But you will have less accurate
warning messages.
-->
<property name="astNoExtenCheck">true</property>
<!--
Dialplan context used for dialing
-->
<property name="astDialContext">from-internal</property>
<!--
Asterisk channel type to use. E.g. 'SIP', 'ZAP' etc.
Action will use ${astChannelType}/${srcPhone}
srcPhone is part of user config
-->
<property name="astDialChannelType">SIP</property>
<!--
srcPhonePrefix is used to compose the caller like
${srcPhonePrefix}${srcPhone} where ${srcPhone} is
user configurable local number
-->
<property name="srcPhonePrefix">1</property>
<!--
Prefix prepended to every dialed number
-->
<property name="calleePrefix"></property>
<!--
Regexp applied to any user inputed number. Matches will be removed.
-->
<property name="numberCleanRegExp">\s|\.|-|\,|(\(0\)|\(|\))</property>
<!--
When dialing international number '+' gets
replaced with the iddPrefix
<property name="iddPrefix">00</property>
<!--
Variable name used in SMS() application for SMS message body
-->
<property name="astSMSVariable">SMS_MESSAGE</property>
<!--
Dialplan context used for sending sms
-->
<property name="astSMSSendContext">sms-send</property>
<!--
Full asterisk channel for sms center
-->
<property name="astSMSCenterChannel">CAPI/g1/0622100000</property>
</host>
<!--
These settings have to be global because of a limitation when getting properties in zimlet's js.
-->
<global>
<!--
Enable/Disable SMS sending through asterisk originate function
Needs a correctly configured SMS() application in dialplan that
gets the SMS message from dialplan variable "astSMSVariable"
example for astSMSVariable = 'SMS_MESSASGE':
[sms-send]
exten => _X.,n,SMS(${CALLERID(num)},${EXTEN},${SMS_MESSAGE} )
exten => _X.,n,SMS(${CALLERID(num)})
exten => _X.,n,Hangup
-->
<property name="enableSMS">true</property>
<property name="maxSMSLength">160</property>
<!--
URL to search a Phonebook entry in web
-->
<property name="phonebookBaseUrl">http://tel.local.ch/q/</property>
<!--
Url parameters used for search in form param1=val1¶m2=val2..
-->
<property name="phonebookUrlCommonParams">ext=1</property>
<!--
Url param which value will be filled with the phone number to search
-->
<property name="phonebookUrlNumberParam">phone</property>
</global>
</zimletConfig>
and here the manager.conf in the trixbox :
;
; Asterisk Call Management support
;
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
[admin]
secret = amp111
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user,origina te
write = system,call,log,verbose,command,agent,user,origina te
[zimbra]
secret = switching
permit = 10.14.200.200/255.255.255.0
read = system,call,log,verbose,command,agent,user,origina te
write = system,call,log,verbose,command,agent,user,origina te
bindaddr = 10.14.200.200
#include manager_additional.conf
#include manager_custom.conf
and, when i make a call "4545" from asterisk zimlet,, there was an error said
" Authentication error on login to asterisk server for user zimbra"
and i look the log in the /tmp/zimbra/log/mailbox.log
here the contain of mailbox.log
info: null callee: 4545 smsTo: null smsMsg:
null
2011-05-13 06:15:11,035 INFO [btpool0-0] [] zimlet - ch_bnc_asterisk callee:4545
2011-05-13 06:15:11,035 DEBUG [btpool0-0] [] zimlet - Checking Extension state
2011-05-13 06:15:11,035 DEBUG [btpool0-0] [] zimlet - Checking Extension state skipped due to global config property 'astNoExtenCheck'
2011-05-13 06:15:11,035 DEBUG [btpool0-0] [] zimlet - Creating orignate action for dialing
2011-05-13 06:15:11,035 INFO [btpool0-0] [] zimlet - Do AMI login.
2011-05-13 06:15:11,036 INFO [btpool0-0] [] ManagerConnectionImpl - Connecting to 10.14.200.248:5038
2011-05-13 06:15:11,073 INFO [Asterisk-Java ManagerConnection-9-Reader-0] [] ManagerConnectionImpl - Connected via Asterisk Call Manager/1.1
2011-05-13 06:15:12,114 INFO [btpool0-0] [] ManagerConnectionImpl - Closing socket.
2011-05-13 06:15:12,115 INFO [Asterisk-Java ManagerConnection-9-Reader-0] [] ManagerReaderImpl - Terminating reader thread: No more lines available: null
2011-05-13 06:15:12,115 ERROR [btpool0-0] [] zimlet - Authentication error on login to asterisk server for user zimbra
2011-05-13 06:15:12,115 DEBUG [btpool0-0] [] zimlet - handleRequest ok
2011-05-13 06:15:12,116 DEBUG [btpool0-0] [] zimlet - {"callee":"4545","errorMessage":"Authentication error on login to asterisk server for user zimbra","extenStateWa$
2011-05-13 06:15:12,116 WARN [btpool0-0] [] zimlet - AMI not logged in, so no logoff from asterisk manager.
-------------------------------------------------------------------------------------------------------------------
please help Mr. Chlauber..
Thank you very much
:)