I did a quick Google search of the lists and I hope that I am not asking a question that has already been answered recently. I have been working on a interface to use with our CRM software. I am using the manager interface and mysql to store the changes. The only issue I am having is when a caller joins the queue. Currently, I can show the status of phones (ready, not ready, ringing, ringing ack, in call, etc). What I am wanting to do is to be able to track the status of the call in the database and do things with it accordingly. I am able to accomplish this and make it work exactly as I want, but it requires a modification to the source. For some reason, the JOIN event in the manager interface doesn't seem to have the unique call id. Almost every other event does, but JOIN doesn't for some reason. Can anyone explain why it doesn't? My boss asked us to remove our hack to the source and find another way as it we want to be able to update versions of asterisk and not modify the source. I thought that I could get around this by using the NEWEXTEN event that happens just before the join, but I can't tie the two events together. Basically, with the hack modified, here's what I do: Call comes in, enter the info into the database with uniqueid as the key. When a call is answered, I update that record in the database and so on. Without the uniqueid on the JOIN event I am stuck. Any suggestions on a way around this, or a better way of doing it? I would also be curious if anyone would share their setup if the are attempting the same. Thanks, Josh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20051021/79479bda/attachment.htm
I apologize if this is posted again as I sent it last night, but I don't see it anywhere in the list as of now. I did a quick Google search of the lists and I hope that I am not asking a question that has already been answered recently. I have been working on a interface to use with our CRM software. I am using the manager interface and mysql to store the changes. The only issue I am having is when a caller joins the queue. Currently, I can show the status of phones (ready, not ready, ringing, ringing ack, in call, etc). What I am wanting to do is to be able to track the status of the call in the database and do things with it accordingly. I am able to accomplish this and make it work exactly as I want, but it requires a modification to the source. For some reason, the JOIN event in the manager interface doesn't seem to have the unique call id. Almost every other event does, but JOIN doesn't for some reason. Can anyone explain why it doesn't? My boss asked us to remove our hack to the source and find another way as it we want to be able to update versions of asterisk and not modify the source. I thought that I could get around this by using the NEWEXTEN event that happens just before the join, but I can't tie the two events together. Basically, with the hack modified, here's what I do: Call comes in, enter the info into the database with uniqueid as the key. When a call is answered, I update that record in the database and so on. Without the uniqueid on the JOIN event I am stuck. Any suggestions on a way around this, or a better way of doing it? I would also be curious if anyone would share their setup if the are attempting the same. Thanks, Josh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20051022/92ec2088/attachment.htm
Tressler, Joshua A wrote:> I did a quick Google search of the lists and I hope that I am not > asking a question that has already been answered recently. > > I have been working on a interface to use with our CRM software. I am > using the manager interface and mysql to store the changes. The only > issue I am having is when a caller joins the queue. > > Currently, I can show the status of phones (ready, not ready, ringing, > ringing ack, in call, etc). What I am wanting to do is to be able to > track the status of the call in the database and do things with it > accordingly. I am able to accomplish this and make it work exactly as > I want, but it requires a modification to the source. For some reason, > the JOIN event in the manager interface doesn?t seem to have the > unique call id. Almost every other event does, but JOIN doesn?t for > some reason. Can anyone explain why it doesn?t? > > My boss asked us to remove our hack to the source and find another way > as it we want to be able to update versions of asterisk and not modify > the source. I thought that I could get around this by using the > NEWEXTEN event that happens just before the join, but I can?t tie the > two events together. >I think you boss was right.. that will allow 100% compatibility with all asterisk versions as far the events are there lets see the events for a moment HMMM the call enter go to the ivr so u will get 1 event like this for the entire IVR Event: Newexten Privilege: call,all Channel: SIP/s-f36c Context: open Extension: 0606 Priority: 7 Application: Queue AppData: operator Uniqueid: 1127422073.9183 Server: asterisk1 Ok this is the JOIN event still u can find things there that will allow u to relate the call see the channel parameter. Event: Join Privilege: call,all Channel: SIP/s-f36c CallerID: ... CallerIDName: ... Queue: operator Position: 1 Count: 1 Server: asterisk1 Now the asterisk is preparing himself for call an agent... Event: Newchannel Privilege: call,all Channel: SIP/9915004-e198 State: Down CallerID: <unknown> CallerIDName: <unknown> Uniqueid: 1127422096.9194 Server: asterisk1 Event: QueueMemberStatus Privilege: agent,all Queue: operator Location: SIP/9915004 Membership: static Penalty: 0 CallsTaken: 86 LastCall: 1127422074 Status: 0 Paused: 0 Server: asterisk1 Ahh magic again a wait to relate see the channelcalling.... and i bet what ever u want that when the agent finish u will find the same similarities. Event: AgentCalled Privilege: agent,all AgentCalled: SIP/9915004 ChannelCalling: SIP/s-f36c CallerID: ..... CallerIDName: ... Context: open Extension: 0606 Priority: 7 Server: asterisk1 so following the events for channel u will probably able to do the same even without the uniqueid. 2 concurrent calls will have diferent channels always.... u just have to be carefull to ensure u follow the call from the beginning to the end. regards saul> Basically, with the hack modified, here?s what I do: > > Call comes in, enter the info into the database with uniqueid as the > key. When a call is answered, I update that record in the database and > so on. Without the uniqueid on the JOIN event I am stuck. > > Any suggestions on a way around this, or a better way of doing it? I > would also be curious if anyone would share their setup if the are > attempting the same. > > Thanks, > > > Josh >
Saul, What you are suggesting follows along the lines of what I am currently trying however I have determined that if the incoming call has no callerid, then the channel name is just Zap/1-1/ . For some reason asterisk doesn't even add the -XXXX to the end of the channel name.... My concern is that we could get a call that wouldn't go completely through the queue (aka, the user hangs up, or a db problem) and then an hour later get another private call on the same Zap/1-1/ channel and then we could have an issue of the uniqueness of the record. Do you follow my scenario? I really thought that this may work until the above problem. Do you have any to this issue? Again, I appreciate your help with this. Thanks again, Josh -----Original Message----- From: asterisk-users-bounces@lists.digium.com [mailto:asterisk-users-bounces@lists.digium.com] On Behalf Of Saul Diaz Sent: Sunday, October 23, 2005 12:28 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [Asterisk-Users] Queue Join Event Tressler, Joshua A wrote:> I did a quick Google search of the lists and I hope that I am not > asking a question that has already been answered recently. > > I have been working on a interface to use with our CRM software. I am > using the manager interface and mysql to store the changes. The only > issue I am having is when a caller joins the queue. > > Currently, I can show the status of phones (ready, not ready, ringing,> ringing ack, in call, etc). What I am wanting to do is to be able to > track the status of the call in the database and do things with it > accordingly. I am able to accomplish this and make it work exactly as > I want, but it requires a modification to the source. For some reason,> the JOIN event in the manager interface doesn't seem to have the > unique call id. Almost every other event does, but JOIN doesn't for > some reason. Can anyone explain why it doesn't? > > My boss asked us to remove our hack to the source and find another way> as it we want to be able to update versions of asterisk and not modify> the source. I thought that I could get around this by using the > NEWEXTEN event that happens just before the join, but I can't tie the > two events together. >I think you boss was right.. that will allow 100% compatibility with all asterisk versions as far the events are there lets see the events for a moment HMMM the call enter go to the ivr so u will get 1 event like this for the entire IVR Event: Newexten Privilege: call,all Channel: SIP/s-f36c Context: open Extension: 0606 Priority: 7 Application: Queue AppData: operator Uniqueid: 1127422073.9183 Server: asterisk1 Ok this is the JOIN event still u can find things there that will allow u to relate the call see the channel parameter. Event: Join Privilege: call,all Channel: SIP/s-f36c CallerID: ... CallerIDName: ... Queue: operator Position: 1 Count: 1 Server: asterisk1 Now the asterisk is preparing himself for call an agent... Event: Newchannel Privilege: call,all Channel: SIP/9915004-e198 State: Down CallerID: <unknown> CallerIDName: <unknown> Uniqueid: 1127422096.9194 Server: asterisk1 Event: QueueMemberStatus Privilege: agent,all Queue: operator Location: SIP/9915004 Membership: static Penalty: 0 CallsTaken: 86 LastCall: 1127422074 Status: 0 Paused: 0 Server: asterisk1 Ahh magic again a wait to relate see the channelcalling.... and i bet what ever u want that when the agent finish u will find the same similarities. Event: AgentCalled Privilege: agent,all AgentCalled: SIP/9915004 ChannelCalling: SIP/s-f36c CallerID: ..... CallerIDName: ... Context: open Extension: 0606 Priority: 7 Server: asterisk1 so following the events for channel u will probably able to do the same even without the uniqueid. 2 concurrent calls will have diferent channels always.... u just have to be carefull to ensure u follow the call from the beginning to the end. regards saul> Basically, with the hack modified, here's what I do: > > Call comes in, enter the info into the database with uniqueid as the > key. When a call is answered, I update that record in the database and> so on. Without the uniqueid on the JOIN event I am stuck. > > Any suggestions on a way around this, or a better way of doing it? I > would also be curious if anyone would share their setup if the are > attempting the same. > > Thanks, > > > Josh >_______________________________________________ --Bandwidth and Colocation sponsored by Easynews.com -- Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users