2017-09-22 26 views
0

별표에서 총 초보자이며 일반적으로 전화 회선을 관리하지만 Asterisk Now 13 배포판을 설치할 수있었습니다. pipip로 2 개의 SIP 전화를 연결하고 SIP 트렁크를 구성했습니다. 해당 접두어가있는 외부 번호로 전화를 걸 때 작동합니다. 이제는 프로그래밍 방식으로 호출을 시작하고이를 로컬 확장에 연결해야합니다.이 확장은 어떻게 달성 해야할지 전혀 모르고 수 시간 동안 인터넷을 통해 많은 정보를 찾을 수 있습니다. 애 스터 리스크 관리자 API를 통해 sip 트렁크를 시작합니다. java

나는 다음과 같은 방법으로 별표 관리자 API 및 OriginateAction으로이 지역의 모금 전화를 연결하기 위해 관리 :

originateAction = new OriginateAction(); 
      originateAction.setChannel(ConnectionType+"/"+extCaller); 
      originateAction.setContext(context); 
      originateAction.setCallerId(idCaller); 
      originateAction.setExten(tDestination); 
      originateAction.setPriority(priority); 
      originateAction.setTimeout(timeoutCall); 
managerConnection.login(); 

     originateResponse = managerConnection.sendAction(originateAction, timeoutRequest); 

가 나는 또한 channel originate pjsip/201 extension [email protected]channel originate local/[email protected] extension [email protected]이 시도.

PJSIP 트렁크의 컨텍스트는 from-pstn입니다. 별표 cli와 응용 프로그램 모두에서 행운없이 다양한 방법으로 사용하려고했습니다.

전화를 걸고 사무실에서 전화를 걸 때 PJSIP 트렁크를 사용하게하려면 어떻게해야합니까?

편집 : 난 아직도하지

: 나는 트렁크 나가는 경로 요건과 "에서-내부"이 같은 맥락으로 완료 번호를 사용하여 발신 통화를 발신 이것이 왜 작동하고 내 질문에 대한 정답인지 이해하십시오.

답변

0

답변은 질문 편집에 있습니다. 내가 찾을 수있는 발신 통화를 생성하는 유일한 방법은 해당 내부 통화를 시작할 때 사용되는 것과 동일한 컨텍스트가되는 "내부 -"컨텍스트를 사용하여 해당 호출을 "내부 용"으로 시작하는 것입니다. SIP 트렁크의 라우트 패턴 요구 사항을 완료합니다.

예 : I는 패턴 (정규식)와 SIP 트렁크 (trunk1) 구성된 경로있다 : [0] {1}/번호를/즉 임의의 수 이하의 0의 infront 그것에 해당 경로에 유효한 값이되며 trunk1을 사용하여 호출하려고 시도합니다.

AsteriskNow CentOS 설치의 경우 "from-internal"컨텍스트를 사용하는 경우가 발생합니다. 별표 설정 파일은 FreePBX가 소유하고 있으므로 별표 manualy의 .conf 파일을 구성하는 대신 FreePBX GUI를 사용하는 것이 좋습니다. 로 결론

: 먼저 확장 201 링을하고 획득시는 [numberToCall] 0과 경로가 "라고 그 때문에 전화를 SIP 트렁크를 사용하려고합니다

channel originate Local/[email protected] extension (0)[numberToCall]@from-internal 

".

ManagerConnectionFactory factory = new 
ManagerConnectionFactory("serverIp", "username", 
        "passwd"); 
ManagerConnection managerConnection=factory.createManagerConnection() 
    OriginateAction originateAction=new OriginateAction(); 

    final String randomUUID=java.util.UUID.randomUUID().toString(); 

      System.out.println("ID random:_"+randomUUID); 

      originateAction.setChannel([connectionType]+"/"+[callerExtension]);<-- SIP or PJSIP/201(the phone that will ring first) 
      originateAction.setContext("from-internal"); <-- Default FreePBX context 
      originateAction.setCallerId([callerId]); // what will be showed on the phone screen (in most cases your phone) 
      originateAction.setExten([targetExten]); //where to call.. the target extension... internal extension or the outgoing number.. the 0[nomberToCall] 
      originateAction.setPriority([priority]);// priority of the call 
      originateAction.setTimeout(timeoutCall); // the time that a pickup event will be waited for 
      originateAction.setVariable("UUID", randomUUID); // asigning a unique ID in order to be able to hangup the call. 
: 별표 (*) - 자바를 사용하여 별표 (*) 해당 명령을 전송하기 위해

나는 다음과 같은 코드를 작성