[asterisk-users] How to check a number online or offline
Phuong Hoang
ducphuongbk200586 at gmail.com
Tue Jan 11 02:35:55 CST 2011
Hi Dhaval,
Can you say how to fire action on AMI in this case and recieve response on
AMI. I also tried to do with HangupAction and RedirectAction action (using
asterisk-java library) in application java (AMI) to hang up or redirect a
channel that is online at the extension on asterisk but not successfully.
This is my code:
package Test;
import java.io.IOException;
import org.asteriskjava.manager.AuthenticationFailedException;
import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.manager.ManagerConnectionFactory;
import org.asteriskjava.manager.TimeoutException;
import org.asteriskjava.manager.action.HangupAction;
import org.asteriskjava.manager.action.OriginateAction;
import org.asteriskjava.manager.action.RedirectAction;
import org.asteriskjava.manager.response.ManagerResponse;
public class TestOriginate {
/**
* @param args
*/
private ManagerConnection managerConnection;
public TestOriginate() throws IOException {
ManagerConnectionFactory factory = new ManagerConnectionFactory(
"192.168.0.178", "manager", "pa55w0rd");
this.managerConnection = factory.createManagerConnection();
}
public void run() {
RedirectAction redirectAction;
ManagerResponse originateResponse;
String state = "";
String receiver = "0976468586";
redirectAction = new RedirectAction();
redirectAction.setContext("from-smg");
redirectAction.setExten("9220");
redirectAction.setPriority(new Integer(1));
redirectAction.setChannel("SIP/"+ receiver);
try {
System.out.println("Starting login 192.168.0.178");
managerConnection.login();
System.out.println("After login 192.168.0.178");
} catch (IllegalStateException e) {
} catch (TimeoutException e) {
} catch (IOException e) {
} catch (AuthenticationFailedException e) {
}
try {
originateResponse = managerConnection.sendAction(redirectAction,
30000);
state = originateResponse.getResponse();
System.out.println("State value is :" + state);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
managerConnection.logoff();
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
TestOriginate test = new TestOriginate();
test.run();
}
}
*While i run above code, the result printed on console likes following:*
Starting login 192.168.0.178
Jan 11, 2011 3:26:01 PM
org.asteriskjava.manager.internal.ManagerConnectionImpl connect
INFO: Connecting to 192.168.0.178:5038
Jan 11, 2011 3:26:02 PM
org.asteriskjava.manager.internal.ManagerConnectionImpl
setProtocolIdentifier
INFO: Connected via Asterisk Call Manager/1.1
Jan 11, 2011 3:26:02 PM
org.asteriskjava.manager.internal.ManagerConnectionImpl
setProtocolIdentifier
WARNING: Unsupported protocol version 'Asterisk Call Manager/1.1'. Use at
your own risk.
Jan 11, 2011 3:26:02 PM
org.asteriskjava.manager.internal.ManagerConnectionImpl doLogin
INFO: Successfully logged in
Jan 11, 2011 3:26:04 PM
org.asteriskjava.manager.internal.ManagerConnectionImpl doLogin
INFO: Determined Asterisk version: Asterisk 1.0
After login 192.168.0.178
State value is :Error
Jan 11, 2011 3:26:04 PM
org.asteriskjava.manager.internal.ManagerConnectionImpl disconnect
INFO: Closing socket.
Jan 11, 2011 3:26:04 PM org.asteriskjava.manager.internal.ManagerReaderImpl
run
INFO: Terminating reader thread: socket closed
I hope you can spend your time to read what i have written above and help me
solve this problem.
Can you contact with me by my yahoo nick : ducphuongbk200586 at yahoo.com
Thanks and best regards.
Phuong
On Mon, Jan 10, 2011 at 10:48 PM, DHAVAL INDRODIYA <dhaval.it01034 at gmail.com
> wrote:
> HI Phuong,
>
> JIM is right way but if you want to use extension state then there is a
> simple way of achiving through
> AMI, you need to fire this action on AMI and response have your answer ,
>
> Please read about Action ExtensionState.
>
>
> http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+ExtensionState
>
> If you are looking for extension state just pass extension and you will
> receive perfect response of that extension then you cans code as you want.
>
> regards
> Dhaval
>
>
> On Tue, Jan 11, 2011 at 9:56 AM, Phuong Hoang <ducphuongbk200586 at gmail.com
> > wrote:
>
>> Hi Jim,
>> Really, I have`nt understood what you said yet. I am building a system on
>> asterisk, and want to check a number online, offline or unreachable. If
>> number is online on the extension then i want to redirect other extension.
>> Redirecting is done by application java using AMI. can you help me do it?
>> Thanks and best regards!
>> Phuong
>>
>>
>> On Mon, Jan 10, 2011 at 7:09 PM, Jim Dickenson <dickenson at cfmc.com>wrote:
>>
>>> If you do an AMI packet like this:
>>>
>>> Action: Originate
>>> Channel: Local/get_info at some_context
>>> Exten: do_noop
>>> Context: some_context
>>> Priority: 1
>>> ActionID: GetInfo
>>> Async: true
>>>
>>> and then have a couple extensions that do what you want. Here is what I
>>> do in my case:
>>>
>>> exten => get_info,1,Answer()
>>> exten => get_info,n,UserEvent(GetInfo,Version:ABE &
>>> DateTime:${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)} & CfMC:83351)
>>> exten => get_info,n,Hangup()
>>>
>>> exten => do_noop,1,Answer()
>>> exten => do_noop,n,Wait(1)
>>> exten => do_noop,n,Hangup()
>>>
>>> You would then do what you need to do in your extensions.
>>>
>>>
>>>
>>> --
>>> Jim Dickenson
>>> mailto:dickenson at cfmc.com <dickenson at cfmc.com>
>>>
>>> CfMC
>>> http://www.cfmc.com/
>>>
>>>
>>>
>>> On Jan 10, 2011, at 6:16 PM, Phuong Hoang wrote:
>>>
>>> Thanks Jim,
>>> Can you say about your idea clearlier? I want to use AMI in an
>>> application java to check a number online, offline or unreachable and result
>>> is returned to the appliction java. If the number is online now, i will use
>>> AMI to hangup it, else i do nothing.
>>> Best regards,
>>> Phuong.
>>>
>>> On Mon, Jan 10, 2011 at 8:50 AM, Jim Dickenson <dickenson at cfmc.com>wrote:
>>>
>>>> You can always place a "call" to an extension that sends a user event
>>>> from AMI. If there are no native AMI commands that can return what you want
>>>> originate a call to a local extension that returns a user event.
>>>> --
>>>> Jim Dickenson
>>>> mailto:dickenson at cfmc.com <dickenson at cfmc.com>
>>>>
>>>> CfMC
>>>> http://www.cfmc.com/
>>>>
>>>>
>>>>
>>>> On Jan 10, 2011, at 7:48 AM, Phuong Hoang wrote:
>>>>
>>>> Thanks Dhaval,
>>>> My purpose is that i want to use java application (using Asterisk
>>>> Manager Interface) to check a number online, offline or unreachable. Your
>>>> suggest uses function DEVICE_STATE but this is written in dialplan not
>>>> application java. Do you know other way to do this for me?thanks and looks
>>>> forward to listening your reply.
>>>> Regards!
>>>> Phuong
>>>>
>>>> On Mon, Jan 10, 2011 at 3:13 AM, DHAVAL INDRODIYA <
>>>> dhaval.it01034 at gmail.com> wrote:
>>>>
>>>>>
>>>>> Hello ,
>>>>>
>>>>> You can use Dialplan function DEVICE_STATE, which will gives you
>>>>> perfect status of DEVICE.
>>>>>
>>>>> regards
>>>>> Dhaval
>>>>>
>>>>>
>>>>> On Mon, Jan 10, 2011 at 4:11 PM, Steve Howes <
>>>>> steve-lists at geekinter.net> wrote:
>>>>>
>>>>>>
>>>>>> On 10 Jan 2011, at 10:37, Phuong Hoang wrote:
>>>>>> I found the link you have just sent to me but it do`nt help me to
>>>>>> resolve this. Can you say clearlier for me?
>>>>>>
>>>>>> Not really. It's a list of manager commands. There is 'SIPshowpeer'
>>>>>> which will work for sip stuff. Try the command 'Command' action and you can
>>>>>> send any CLI command, like sip/iax2 show peers etc. 'ExtensionState' might
>>>>>> work in some cases..
>>>>>>
>>>>>> S
>>>>>> --
>>>>>> _____________________________________________________________________
>>>>>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>>>>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>>>>>> http://www.asterisk.org/hello
>>>>>>
>>>>>> asterisk-users mailing list
>>>>>> To UNSUBSCRIBE or update options visit:
>>>>>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> _____________________________________________________________________
>>>>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>>>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>>>>> http://www.asterisk.org/hello
>>>>>
>>>>> asterisk-users mailing list
>>>>> To UNSUBSCRIBE or update options visit:
>>>>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>>
>>>>
>>>> --
>>>> _____________________________________________________________________
>>>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>>>> http://www.asterisk.org/hello
>>>>
>>>> asterisk-users mailing list
>>>> To UNSUBSCRIBE or update options visit:
>>>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>
>>>>
>>>>
>>>> --
>>>> _____________________________________________________________________
>>>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>>>> http://www.asterisk.org/hello
>>>>
>>>> asterisk-users mailing list
>>>> To UNSUBSCRIBE or update options visit:
>>>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>>>
>>>
>>> --
>>> _____________________________________________________________________
>>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>>> http://www.asterisk.org/hello
>>>
>>> asterisk-users mailing list
>>> To UNSUBSCRIBE or update options visit:
>>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>>
>>>
>>>
>>> --
>>> _____________________________________________________________________
>>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>>> http://www.asterisk.org/hello
>>>
>>> asterisk-users mailing list
>>> To UNSUBSCRIBE or update options visit:
>>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>>
>>
>>
>> --
>> _____________________________________________________________________
>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>> New to Asterisk? Join us for a live introductory webinar every Thurs:
>> http://www.asterisk.org/hello
>>
>> asterisk-users mailing list
>> To UNSUBSCRIBE or update options visit:
>> http://lists.digium.com/mailman/listinfo/asterisk-users
>>
>
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110111/b909939f/attachment.htm>
More information about the asterisk-users
mailing list