I'm trying to monitor a transfer call from the begining to the end. The scenario is : A calls B. B reply and transfer to C. B terminate the transfer and A talks to C.
I can't manage to have any event when the phone C is ringing for the transfert. I have implemented the interface TelephonyListener.
I have the event terminalConnectionHeld, but when he arrived I don't know the destination of the transfer.
Thank you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What provider are you using under GJTAPI? When you say that you have implemented the TelephonyListener, does this mean you are writing your own provider? Have you registered a listener against terminal C or against the call?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-07-09
Hello,
I use Tapi3 under GJTAPI.
I have implemented the interface TelephonyListener to make actions when a connection is disconnected or a terminal is ringing (I send information to an upper level application when a phone is ringing).
Yes I registered listerners against all terminals.
To clarify my environement I monitor TAPI events from an IPBX. I add listerner against all terminals connected to the IPBX. My biggest problem is the method terminalConnectionRinging() from the Interface TelephonyListener is only called when an external call arrives, for an internal call I can't know when a terminal is ringing.
How can I know if a terminal is ringing for an internal call ?
Thank you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It could be that the TAPI3 service provider isn't properly sending ringing events for internal transfers. Are you able to put a breakpoint into the TAPI3 service provider and see what is being sent up from the DLL?
I don't have a lot of time to look into this in the next few weeks. Do you have a simple sample test class that demonstrates the problem? Has anyone else on the list seen this?
Richard
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-07-09
I made a simple sample test class (initialize a service provider and add listener). See this link : http://pastebin.com/aZgQmpbc
My code is simple, it only monitor one "event" (the ringing event). You will not be able to test it because I use an IPBX to monitor my telephony network. Maybe the problem come from the IPBX which doesn't send events to the Tapi3 provider ??
I look at the file Tapi3dll.log. When there is an incoming external call the methode terminalConnectionRinging is called. But when there is an internal call : exemple number 100 calls number 103. Methods are called in this order : -> connectionInProgress (100 dial the number 103)-> ConnectionAlerting (100 has finished to dial the number) -> connectionTalking (when 103 reply) and connectionDisconnected (when the call is done)
Thank you to help me on this problem
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-07-09
To complete my post I use GJTAPI 1.9 rc1.
I do not use rc4 because I wasn't abble to get the provider with the last version.
With RC4 I have an error on this line :
Provider provider = peer.getProvider("Tapi3");
Here the error : Exception in thread "main" javax.telephony.ProviderUnavailableException: Error loading raw provider Tapi3: Tapi3
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2012-07-11
Hello,
I solve my problem. Internal call didn't work only with DECT phone. When I make ringing an IP phone I have all the events I want.
Thank you for your help. And rdeadman you did a very good work with GJTAPI.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I'm trying to monitor a transfer call from the begining to the end. The scenario is : A calls B. B reply and transfer to C. B terminate the transfer and A talks to C.
I can't manage to have any event when the phone C is ringing for the transfert. I have implemented the interface TelephonyListener.
I have the event terminalConnectionHeld, but when he arrived I don't know the destination of the transfer.
Thank you.
What provider are you using under GJTAPI? When you say that you have implemented the TelephonyListener, does this mean you are writing your own provider? Have you registered a listener against terminal C or against the call?
Hello,
I use Tapi3 under GJTAPI.
I have implemented the interface TelephonyListener to make actions when a connection is disconnected or a terminal is ringing (I send information to an upper level application when a phone is ringing).
Yes I registered listerners against all terminals.
To clarify my environement I monitor TAPI events from an IPBX. I add listerner against all terminals connected to the IPBX. My biggest problem is the method terminalConnectionRinging() from the Interface TelephonyListener is only called when an external call arrives, for an internal call I can't know when a terminal is ringing.
How can I know if a terminal is ringing for an internal call ?
Thank you.
It could be that the TAPI3 service provider isn't properly sending ringing events for internal transfers. Are you able to put a breakpoint into the TAPI3 service provider and see what is being sent up from the DLL?
I don't have a lot of time to look into this in the next few weeks. Do you have a simple sample test class that demonstrates the problem? Has anyone else on the list seen this?
Richard
I made a simple sample test class (initialize a service provider and add listener). See this link : http://pastebin.com/aZgQmpbc
My code is simple, it only monitor one "event" (the ringing event). You will not be able to test it because I use an IPBX to monitor my telephony network. Maybe the problem come from the IPBX which doesn't send events to the Tapi3 provider ??
I look at the file Tapi3dll.log. When there is an incoming external call the methode terminalConnectionRinging is called. But when there is an internal call : exemple number 100 calls number 103. Methods are called in this order : -> connectionInProgress (100 dial the number 103)-> ConnectionAlerting (100 has finished to dial the number) -> connectionTalking (when 103 reply) and connectionDisconnected (when the call is done)
Thank you to help me on this problem
To complete my post I use GJTAPI 1.9 rc1.
I do not use rc4 because I wasn't abble to get the provider with the last version.
With RC4 I have an error on this line :
Here the error : Exception in thread "main" javax.telephony.ProviderUnavailableException: Error loading raw provider Tapi3: Tapi3
Hello,
I solve my problem. Internal call didn't work only with DECT phone. When I make ringing an IP phone I have all the events I want.
Thank you for your help. And rdeadman you did a very good work with GJTAPI.
Good to hear.
Richard