【问题标题】:How to fix PlatformExceptionImpl with code of 100 when excecuting `javax.telephony.Call#connect`?执行`javax.telephony.Call#connect`时如何使用代码100修复PlatformExceptionImpl?
【发布时间】:2019-07-19 03:47:05
【问题描述】:

当我打电话时:

final JtapiPeer jtapiPeer = JtapiPeerFactory.getJtapiPeer(null);
final CiscoProvider ciscoProvider = jtapiPeer.getProvider(String.format(CUCM_LOGIN_STRING,
                        telephonyPropertyCucm.getHost(),
                        telephonyPropertyCucm.getLogin(),
                        telephonyPropertyCucm.getPassword()));
final Call call = ciscoProvider.createCall();
final Address addressFrom = ciscoProvider.getAddress(from);
addressFrom.addCallObserver((callEvs) -> {});
call.connect(addressFrom.getTerminals()[0], addressFrom, to);

然后我有有时一个 PlatformExceptionImpl:

...
Caused by: com.cisco.jtapi.PlatformExceptionImpl: Could not meet post conditions of connect()
    at com.cisco.jtapi.CallImpl.connect(CTQF) ~[cisco-jtapi-0.0.1-SNAPSHOT.jar!/:11.5(1.13045)-1 Release]
    at com.cisco.jtapi.CallImpl.connect(CTQF) ~[cisco-jtapi-0.0.1-SNAPSHOT.jar!/:11.5(1.13045)-1 Release]
    at ru.bcs.telephony.jtapi.starter.helper.call.CallingExecutable.execute(CallingExecutable.java:33) ~[telephony-jtapi-spring-boot-starter-1.1-RELEASE.jar!/:na]
    ... 124 common frames omitted

我已经尝试将 jtapi.ini 中的 JtapiPostConditionTimeout 增加到 20 秒(正如我在文档中看到的那样,它是最大值)。

我希望这个异常不会出现。

但只有有时会出现此异常。

附:异常字段如下:

PLATFORM EXCEPTION. It's a message: Could not meet post conditions of connect(). It's error code: 100. It's error name: . It's error description: 

【问题讨论】:

    标签: java cisco cucm cisco-jtapi


    【解决方案1】:

    提供者、地址、终端等对象具有服务中/服务外状态 - 打开一个(例如通过添加观察者)启动连接到 CUCM CTI 管理器并建立对象的观察/控制的过程,但这需要一些时间。

    一般来说,您需要等待这些对象的服务中事件到达,然后再尝试对它们进行任何操作:

        Handler handler = new Handler();
    
        // Create the JtapiPeer object, representing the JTAPI library
        System.out.println("Initializing Jtapi");
        JtapiPeer peer = JtapiPeerFactory.getJtapiPeer( null );
    
        // Create and open the Provider, representing a JTAPI connection to CUCM CTI Manager
        String providerString = String.format( "%s;login=%s;passwd=%s", 
            System.getenv( "CUCM" ), System.getenv( "USER_NAME" ), System.getenv( "PASSWORD" ) );
    
        System.out.println( "Connecting Provider: " + providerString );
    
        Provider provider = peer.getProvider( providerString );
    
        provider.addObserver( handler );
    
        // Wait for ProvInServiceEv
        System.out.println( "Awaiting ProvInServiceEv..." );
    
        handler.providerInService.waitTrue();
    
        // Retrieve and open the Address (line) object for the 'from' DN specified in the environment
        CiscoAddress fromAddress = (CiscoAddress) provider.getAddress( System.getenv( "CALL_FROM" ) );
    ...
    

    其中 Hander.java 类似于:

    package com.cisco.jtapi.makecall;
    
    import javax.telephony.*;
    import javax.telephony.events.*;
    import javax.telephony.callcontrol.*;
    import com.cisco.jtapi.extensions.*;
    import com.cisco.cti.util.Condition;
    
    public class Handler implements
    
        ProviderObserver, 
        TerminalObserver, 
        AddressObserver, 
        CallControlCallObserver {
    
        public Condition providerInService = new Condition();
        public Condition terminalInService = new Condition();
        public Condition addressInService = new Condition();
        public Condition callActive = new Condition();
    
        public void providerChangedEvent( ProvEv[] events ) {
    
            if ( events != null ) {
    
                for ( int i = 0; i < events.length; i++ ) {
    
                    System.out.println( "-->Received " + events[ i ] + " for: " + events[ i ].getProvider().getName() );
    
                    switch ( events[ i ].getID() ) {
    
                        case ProvInServiceEv.ID:
    
                            providerInService.set();
    
                            break;
                    }
                }
            }
        }
    ...
    

    完整示例请参见此处:https://github.com/CiscoDevNet/jtapi-samples

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      相关资源
      最近更新 更多