2 zavndw, спасибо за пример.
У меня выходит такая ошибка:
Код:
06-02/09:55:20 INFO [http-bio-9088-exec-94] AMIManager - Reinit..
06-02/09:55:56 INFO [Thread-6] Config - Reload tasks config.
06-02/09:56:08 ERROR [Thread-7] AMIManager - Connection timed out
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.asteriskjava.util.internal.SocketConnectionFacadeImpl.<init>(SocketConnectionFacadeImpl.java:93)
at org.asteriskjava.util.internal.SocketConnectionFacadeImpl.<init>(SocketConnectionFacadeImpl.java:66)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.createSocket(ManagerConnectionImpl.java:765)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.connect(ManagerConnectionImpl.java:744)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.doLogin(ManagerConnectionImpl.java:498)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.login(ManagerConnectionImpl.java:446)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.login(ManagerConnectionImpl.java:431)
at org.asteriskjava.manager.DefaultManagerConnection.login(DefaultManagerConnection.java:294)
at ru.bgcrm.plugin.asterisk.AmiEventListener.run(AmiEventListener.java:60)
06-02/09:56:08 ERROR [http-bio-9088-exec-94] AMIManager - Logoff may only be perfomed when in state CONNECTED or RECONNECTING, but connection is in state DISCONNECTED
java.lang.IllegalStateException: Logoff may only be perfomed when in state CONNECTED or RECONNECTING, but connection is in state DISCONNECTED
at org.asteriskjava.manager.internal.ManagerConnectionImpl.logoff(ManagerConnectionImpl.java:772)
at org.asteriskjava.manager.DefaultManagerConnection.logoff(DefaultManagerConnection.java:305)
at ru.bgcrm.plugin.asterisk.AmiEventListener.logoff(AmiEventListener.java:90)
at ru.bgcrm.plugin.asterisk.AMIManager.init(AMIManager.java:56)
at ru.bgcrm.plugin.asterisk.AMIManager.access$0(AMIManager.java:48)
at ru.bgcrm.plugin.asterisk.AMIManager$1.notify(AMIManager.java:41)
at ru.bgcrm.plugin.asterisk.AMIManager$1.notify(AMIManager.java:1)
at ru.bgcrm.event.EventProcessor.processingEvent(EventProcessor.java:205)
at ru.bgcrm.event.EventProcessor.processEvent(EventProcessor.java:140)
at ru.bgcrm.event.EventProcessor.processEvent(EventProcessor.java:286)
at ru.bgcrm.event.EventProcessor.processEvent(EventProcessor.java:97)
at ru.bgcrm.struts.action.admin.ConfigAction.update(ConfigAction.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at ru.bgcrm.struts.action.BaseAction$Invoker.invoke(BaseAction.java:532)
at ru.bgcrm.struts.action.BaseAction.dispatchMethod(BaseAction.java:241)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bgcrm.servlet.filter.SetRequestParamsFilter.doFilter(SetRequestParamsFilter.java:43)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bgcrm.servlet.filter.AuthFilter.doFilter(AuthFilter.java:150)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bgcrm.servlet.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Конфигурация в crm:
Код:
# Типы сообщений
messageType.1.title=Звонки
messageType.1.class=ru.bgcrm.dao.message.MessageTypeCall
# AMI
asterisk:amiManager.1.messageTypeId=1
asterisk:amiManager.1.host=10.1.1.6
asterisk:amiManager.1.port=5038
asterisk:amiManager.1.login=admin
asterisk:amiManager.1.pswd=amp111
createOnStart=ru.bgcrm.plugin.asterisk.AMIManager,ru.bgcrm.event.listener.MessageTypeCallListener
В астериске лог:
Код:
[2016-06-02 09:43:07] WARNING[18796]: pbx_config.c:1837 pbx_load_config: The use of '_.' for an extension is strongly discouraged and can have unexpected behavior. Please use '_X.' instead at line 127 of extensions.conf
[2016-06-02 09:43:07] WARNING[18796]: pbx.c:8391 ast_context_verify_includes: Context 'from-internal-xfer' tries to include nonexistent context 'from-internal-custom'
.... [много почти одинакоовых строк]
[2016-06-02 09:43:07] WARNING[18796]: pbx.c:8391 ast_context_verify_includes: Context 'app-cf-toggle' tries to include nonexistent context 'app-cf-toggle-custom'
[2016-06-02 09:43:07] WARNING[18796]: res_odbc.c:503 load_odbc_config: The 'pooling', 'shared_connections', 'limit', and 'idlecheck' options are deprecated. Please see UPGRADE.txt for information
[2016-06-02 09:43:07] NOTICE[18796]: res_odbc.c:585 load_odbc_config: Registered ODBC class 'asteriskcdrdb' dsn->[MySQL-asteriskcdrdb]
[2016-06-02 09:43:07] ERROR[18796]: res_sorcery_config.c:240 sorcery_config_internal_load: Unable to load config file 'pjproject.conf'
[2016-06-02 09:43:07] ERROR[18804]: phone_message.c:1654 msg_build_dialplan_routing: Unable to build dialplan routing - invalid license
[2016-06-02 09:43:07] NOTICE[18799]: sorcery.c:1374 sorcery_object_load: Type 'system' is not reloadable, maintaining previous values
[2016-06-02 09:43:07] WARNING[18796]: res_digium_phone.c:2047 reload: No Valid DPMA License found. Module is loaded but disabled. Please reload module once valid license is installed.
[2016-06-02 09:43:07] WARNING[18796]: iax2/firmware.c:234 iax_firmware_reload: Error opening firmware directory '/var/lib/asterisk/firmware/iax': No such file or directory
[2016-06-02 09:43:07] NOTICE[18796]: iax2/provision.c:562 iax_provision_reload: No IAX provisioning configuration found, IAX provisioning disabled.
[2016-06-02 09:43:07] WARNING[18517]: chan_sip.c:31135 build_peer: 'tcp' is not a valid transport type when tcpenable=no. If no other is specified, the defaults from general will be used.
[2016-06-02 09:43:07] WARNING[18796]: chan_dahdi.c:18963 process_dahdi: Ignoring any changes to 'signalling' (on reload) at line 12.
[2016-06-02 09:43:07] WARNING[18796]: chan_dahdi.c:18963 process_dahdi: Ignoring any changes to 'rxwink' (on reload) at line 13.
[2016-06-02 09:43:07] NOTICE[18796]: confbridge/conf_config_parser.c:2076 verify_default_profiles: Adding default_menu menu to app_confbridge
[2016-06-02 09:43:07] NOTICE[18796]: app_queue.c:8742 reload_queue_rules: queuerules.conf has not changed since it was last loaded. Not taking any action.
[2016-06-02 09:43:07] WARNING[18796]: app_flite.c:77 read_config: Flite: Unable to read config file flite.conf. Using default settings
manager.conf создает freepbx:
Код:
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
displayconnects=no ;only effects 1.6+
[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,config,command,dtmf,reporting,cdr,dialplan,originate,message
write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message
writetimeout = 5000
[admin]
secret = amp111
deny=0.0.0.0/0.0.0.0
permit=10.1.1.0/255.255.255.0
permit=127.0.0.1/255.255.255.0
read = call
writetimeout = 5000
Затем, спустя некоторое время AMI снова пытается подключиться, и выходит такая ошибка:
Код:
06-02/10:03:22 INFO [Thread-7] ManagerConnectionImpl - Connecting to 10.1.1.6:5038
06-02/10:05:30 ERROR [Thread-7] AMIManager - Connection timed out
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.asteriskjava.util.internal.SocketConnectionFacadeImpl.<init>(SocketConnectionFacadeImpl.java:93)
at org.asteriskjava.util.internal.SocketConnectionFacadeImpl.<init>(SocketConnectionFacadeImpl.java:66)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.createSocket(ManagerConnectionImpl.java:765)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.connect(ManagerConnectionImpl.java:744)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.doLogin(ManagerConnectionImpl.java:498)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.login(ManagerConnectionImpl.java:446)
at org.asteriskjava.manager.internal.ManagerConnectionImpl.login(ManagerConnectionImpl.java:431)
at org.asteriskjava.manager.DefaultManagerConnection.login(DefaultManagerConnection.java:294)
at ru.bgcrm.plugin.asterisk.AmiEventListener.run(AmiEventListener.java:60)