2016-11-15 1 views
0

Asterisk에서 B-leg의 통화 시간을 얻는 가장 좋은 방법은 무엇입니까?별표 - B-leg의 통화 시간

숫자 -------- (a-leg) -------> 별표 PBX -------- (b-leg) -------- ---> B 인분

간단한 dialplan을은 : 그 dialplan을하는 다수의 호출, 그것은 10 초 동안 기다리면

[bleg_duration] 
exten => _X.,1,Answer() 
same => n,Wait(10) 
same => n,Dial(dahdi/G1/${B_NUM},30,gS(60)) 
same => n,Noop(${CDR(billsec)}) 
same => n,Noop(${DIALEDTIME}) ;Time for the call (seconds) 
same => n,Noop(${ANSWEREDTIME}) ;Time from dial to answer (seconds) 
same => n,Hangup() 

그래서 전에 B의 번호로 연결한다. 나는 B num이 응답 할 때부터 B num hangup 때까지 지속 시간을 얻고 싶습니다. 나는 그것이 일반적인 필요라고 생각하지만 그것을 얻는 쉬운 길을 찾을 수 없다.

답변

1

1) forkCDR 레코드를 사용할 수 있습니다.

2) 로컬/채널을 통해 전화를 걸면 두 번째 cdr 레코드가 올바른 billsec을 갖습니다.

3) EPOCH (현재 시간) 및 사용자를 저장할 수 있습니다.

그래, 당신은 여전히 ​​답변

${ANSWEREDTIME}: This is the amount of time for actual call. 
+0

감사를 사용할 수 있습니다. ForkCDR()을 사용하면 CDR이 2 부분으로 분리됩니다. 어떻게 각 부분의 지속 시간을 얻을 수 있습니까? 아니면 내가 잘못 이해 했니? – duccom

+0

지속 시간은 두 번째 것에 대한 billsec입니다. – arheops

+0

알았지 만 두 번째 CDR에 어떻게 액세스 할 수 있습니까? 내가 CDR (billsec)에 전화 할 때 항상 첫 CDR 기간을 보여줍니다. – duccom