Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2013
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Initialization of variables
  2. api = freeswitch.API()
  3. -- First argument is caller uuid.
  4. caller_uuid = argv[1]
  5. if caller_uuid==nil then return end
  6. -- Second argument is callcenter name.
  7. queue_name = argv[2]
  8. if queue_name==nil then return end
  9. -- Third argument is repeating interval in miliseconds.
  10. mseconds = argv[3]
  11. if mseconds==nil then return end
  12.  
  13. times_announced = 0
  14.  
  15.  
  16. while (true) do
  17.     freeswitch.msleep(mseconds) -- Pause before announcing position
  18.     members = api:executeString("callcenter_config queue list members "..queue_name)
  19.     pos=1 -- Variable to count position
  20.     exists=false -- Variable to allow script termination when member leaves queue
  21.     for line in members:gmatch("[^\r\n]+") do
  22.         if (string.find(line,"Trying")~=nil or string.find(line,"Waiting")~=nil) then
  23.             -- Members have a position when their state is Waiting or Trying
  24.             if string.find(line,caller_uuid,1,true)~=nil then
  25.                 exists=true -- Member still in queue so script must continue
  26.                 --api:executeString("uuid_broadcast "..caller_uuid.." ivr/ivr-you_are_number.wav aleg")
  27.                 --api:executeString("uuid_broadcast "..caller_uuid.." digits/"..pos..".wav aleg")
  28.                 if pos == 1 then
  29.                     if times_accounced == 0 then
  30.                         api:executeString("uuid_broadcast "..caller_uuid.." say:'Please hold. You will be connected to a representative shortly.' aleg")
  31.                     else
  32.                         api:executeString("uuid_broadcast "..caller_uuid.." say:'We are sorry to keep you waiting. You will be connected to a representative shortly.' aleg")
  33.                     end
  34.                 elseif pos == 2 then
  35.                     if times_accounced == 0 then
  36.                         api:executeString("uuid_broadcast "..caller_uuid.." say:'There is 1 caller ahead of you. We will be with you shortly.' aleg")
  37.                     else
  38.                         api:executeString("uuid_broadcast "..caller_uuid.." say:'We are sorry to keep you waiting. There is 1 caller ahead of you. We will be with you shortly.' aleg")
  39.                     end
  40.                 else
  41.                     if times_accounced == 0 then
  42.                         api:executeString("uuid_broadcast "..caller_uuid.." say:'There are "..(pos-1).." callers ahead of you. We will be with you shortly.' aleg")
  43.                     else
  44.                         api:executeString("uuid_broadcast "..caller_uuid.." say:'We are sorry to keep you waiting. There are "..(pos-1).." callers ahead of you. We will be with you shortly.' aleg")
  45.                     end
  46.                 end
  47.                 times_announced = times_announced + 1
  48.             end
  49.             pos=pos+1
  50.         end
  51.     end
  52.     if exists==false then return end -- If member was not found in queue, or it's status is Aborted - terminate script
  53. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement