Jump to content
KAZOOcon: hackathon signup and details here! ×

Uzair Mahmud

Moderators
  • Posts

    90
  • Joined

  • Days Won

    5

Posts posted by Uzair Mahmud

  1. you can make a feature code that toggles between out for lunch and back to office status. When a person leaves for lunch they can just dial the code and then dial it again when they come back.

    As for the technical aspect you can make a pivot script that loads the users callflow and adds an audio message for lunch or takes it off if its already there.

  2. yes ofcourse. Thanks :)

    @mc_ i had one last question if you can guide me. Otuside of Erlang Programming Is there a way to put an IVR and DTMF Collect on sip:486 response when dailing external calls. Where exactly would that code go. 

  3. We ended up making our own.

    First disable call waiting on all phones if you want.

    Our version gives camper voice guide instead of busy response. 

    Basically we set the busy response in all device call flows to give camper voice guide and collect DTMF for triggering campon.. 

    Once the campon is triggered our go script checks the channels every 5 seconds for presence of the busy number. If it is not busy then a quick call is triggered between the two devices.

    This works really well but its kinda hacky and continuously checking the channels will put a load on the server depending on how many people have activated the featurea t the same time.

    @mc_  I was wondering if there is a way of checking busy status of on-net or any number dialed through quickcall or some other mechanism in the api. Something like  the ability to read the 486 code in the response to an unsuccessful call due to number being busy . 

  4. An example  metaflow for transfer is 

         patterns': {

    "8(\\d+)": {
            "module": "transfer",
            "data": {
              "takeback_dtmf": "*1",
              "moh": "e74213295fd357dbcbc97973267ae9a2"
            }
          }

    }

     

    This means that you will dial *8 followed by the extension

    but before that you have to enable konami and crossbar metaflows module

  5. i have the same script as tomas_ working on my self hosted cluster too. we added an extra check where script will check an eavesdrop group where we add users and only those users can listen in on other calls

  6. There is a way to do that . We have implemented a variation where if you call form the outside and enter a extension number and that numbers pin code you can have that number forwarded to the cid of the device you are calling from.

      You can create a callflow with a pivot script. 

    The pivot script can ask the user for the number they want to apply forward to and a pincode (preset for that number). you can do api calls in the back to  find the device document for the number to apply forward on and do pincode matching for security purposes. after that you can ask the user for the number that calls should be forwarded to. Then make a json  for call forward and patch it to that device document.

    Json for call forward can be found here.  https://github.com/2600hz/kazoo/blob/master/applications/crossbar/priv/couchdb/schemas/devices.json  line6 - line 48

     

    edit: you can make a user outside device field in user document and then do CID matching on incoming calls and provide more service to people dialing form outside or some variation on disa. Just have to be very thorough with making it secure.

  7. You can do a pivot script for it.

    for example your code is *8 for group pickup

    to pickup karens call whose extension is say 9001 you would dial *89001 .

    This would go to a pivot script which will get karens $user_id from 9001 

    and return the following json

    '{"module":"group_pickup_feature","data":{"type":"extension","group_id":"'.$user_id.'"}}'

    This would automatically work for picking up any number without having to manually program it

  8. Alright ended up fixing the RTP  QOS reporting. Apparently for centos 7 the homer script ends up installing kamailio 4.4 instead of 5 . in kam 4.4 the default setting is to store RTCP data in one table called rtcp_capture. Kamailio 5.5 partitions the data by date and stores it in rtcp_capture_date1 ,  rtcp_capture_date2 etc.

    I had to set define('RTCP_TABLE_PARTITION', 1); to define('RTCP_TABLE_PARTITION', 0); on second last line of /var/www/html/homer/api/preferences.php

    Now onto manually upgradation of kamailio 5 and enable partitoning of rtcp data. 

  9. @amn After using homer i just realized only sip signalling packets are being sent and some rtcp packets after the interval i specify in freeswitch xml. Since there are also no RTP packets being captured,  the bandwidth used should not be a lot. there is also a payload compression parameter in /usr/local/captagent/etc/captagent/transport_hep.xml which should further reduce the payload size of monitoring data. 

  10. @Anthony Manzella I see. Ok installing it right now.

    i had another question. Do you use a seperate ethernet interface for captagent to send packets to homer. I am guessing if  i use the same interface its going to decrease the number of calls throgh my voip ethernet interface by a little bit more than half unless i do some sort of compression on the data being sent.

     

    I could not install homer using your centos instructions.

    The ones that worked for me are these: 

    yum install redhat-lsb-core wget git 
    cd /usr/src
    wget https://cdn.rawgit.com/sipcapture/homer-installer/master/homer_installer.sh
    chmod +x homer_installer.sh
    ./homer_installer.sh

    Taken from Homer Git Repo

     

    Edit: 

    I also had to add the following two lines in sipinterface_1.xml to get the rtcp information working

    <param name="rtcp-audio-interval-msec" value="5000"/>
    <param name="rtcp-video-interval-msec" value="5000"/>

     

    Now freeswitch and captagent is sending rtcp information. It is ggetting saved in the databse with the correct corellation id.  I am stuck at not being able to view it with Homer gui.  

  11. For the 7960, First thing you have to do is to create a tftp server.

    Then you have to program your DHCP Server  to point 7960 to that tftp server by setting DHCP options 66.

    In the tftp server put in the latest SIP firmware for cisco 7960 from  http://www.computersolutions.cn/downloads/Cisco/SIP-7960/index.html%3FC=D%3BO=A

    8.12 firmware should be the latest. http://www.computersolutions.cn/downloads/Cisco/SIP-7960/P0S3-8-12-00.zip

    Unzip the files in the tftp server

    After that you have to make two additional files SIPDefault.cnf and SIPxyz.cnf where xyz is the phones macaddress. Place these files in the tftp server.

    You can checkout the file formats from this link. http://wiki.siftah.com/Cisco_7960G_IP_Phone_on_Asterisk

    Once you have setup all the files in the tftp server,  connect the phone to the network. it should connect to the tftp server and update itself and connect to the server.

    Let me know if you need any additional help.

     

     

     

  12. @Anthony Manzella  Thankyou for the updated guide in one place.

    I am implementing homer on my servers. This guide helped a lot. I had a point of confusion. i was hoping you could clear it for me.  I found that there are two ways to capture packets to send to homer server. One is to use captagent. Other is to use inbuilt capabilities of Kamailio and Freeswitch to send packets to the Homer Server. Can you elaborate on the differences between the two and which way would you recommend?

    Also have you ever implemented a strategy of multiple homer servers for redundancy. is it even possible? We have a client that wants everything to be in pairs of two or more.

  13. Yeah i completely understand. The freeswitch ext ips only takes one value, same for kamailio advertise.

    I was wondering if there is a variable that can be in the settings file before the certificates where we can specify if we want lan install or nat install and the ips will be set accordingly.

     

    Also i finally figured out the error why i wasn't getting kazoo log files. My rsyslog was disabled. Once i enabled that i started getting the kazoo main log file. 

     

    Cheers

    Uzair Mahmud

  14. Hi Tom,

     I was having trouble in my lan setup without NAT.

    My test setup has two servers A and B with all components installed. What would happen is that there would be no audio if the call went from ServerA Kamailio to Server B Freeswitch  and vice versa.

      I had to comment out sdp fix on the lines 613 and 722 in /etc/kazoo/kamailio/default.cfg to get my audio to work in a highly available fashion on LAN. This change kept the ip from changing in the sdp and the packets started routing correctly for my non NAT scenario. 

    Writing this here in hope that someone with a similar scenario can benefit from this. 

    Edit: I just saw that you removed SDP Fix and are getting external ip through akami. i will have to check that and see how i can use it for my LAN setup.

  15. i tried using cf_resources. i believe it forwards to only external numbers in which case this breaks for internal forward on busy and no answer. 

    So far the only way i have been able to get this working with DID and internal extensions is to create an additional device of type cellphone and assign it a number. then i patch the find me follow me callflow  to that users callflow with the additional device as a second device. 

    This is only a placeholder till i can figure out erlang (almost there) and the internal functions of callflow app and write a module for it. 

×
×
  • Create New...