Welcome to Dream.In.Code
Become a Java Expert!

Join 150,066 Java Programmers for FREE! Get instant access to thousands of Java experts, tutorials, code snippets, and more! There are 1,782 people online right now. Registration is fast and FREE... Join Now!




doubt in loop

 
Reply to this topicStart new topic

doubt in loop

nila
13 Jun, 2008 - 09:08 PM
Post #1

D.I.C Head
**

Joined: 5 Jan, 2008
Posts: 128

Hi,
I need to do a small process like this:a message will be played like this:"press 1 for analog,press 2 for digital,press 3 to go to previous menu". if i press 1 ,i have to print "analog".if 2 "digital".if 3 ,i have to go to previous menu which plays that message again.Now i did upto pressing 2.but when pressing 3,i dont know how to make it to go back to the same message.i need to put it in any for loop?
please assist me.my code follows:
CODE

import java.lang.Object;
import java.sql.*;
import java.lang.String;
import java.text.SimpleDateFormat;
import java.io.IOException;
import java.lang.IllegalStateException;
import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;
import org.asteriskjava.fastagi.DefaultAgiServer;
import org.asteriskjava.fastagi.AgiScript;
import org.asteriskjava.manager.event.*;
import java.net.InetAddress;
import java.util.Collection;
import java.util.Map;
import java.util.List;
import java.util.Date;
import org.asteriskjava.live.LiveObject;
import org.asteriskjava.live.internal.AsteriskServerImpl;
import org.asteriskjava.manager.DefaultManagerConnection;
import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.live.ManagerCommunicationException;

public class TestIvr extends BaseAgiScript implements AgiScript

{
Statement st;
ResultSet rs=null;
ResultSet rs1=null;
ResultSet rs2=null;
Connection conn = null;

public void service(AgiRequest request, AgiChannel channel)
            throws AgiException
    {
    String callerid=request.getCallerId();
    System.out.println(callerid);
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");
    String s = formatter.format (new Date());
    System.out.println(callerid);
    answer();
    String file1="welcome";
    streamFile("welcome");
    int timeout=1000;
    int maxDigits=20;
    int timeout1=3000;
char q=waitForDigit(timeout);

                                
System.out.println("for complaints press 0,or else hold the line");
String choice=channel.getData("for complaints press 0,or else hold the line",timeout1,maxDigits);
System.out.println(choice);
    if(choice.equals("0"))
        {

            System.out.println("press 1 for analog,press 2 for digital,3 to go back to previous menu");
            String service=channel.getData("press 1 for analog,press 2 for digital,3 to go back to previous menu",timeout1,maxDigits);
            if(service.equals("1"))
                {
                    System.out.println("analog");
                    String analogcomp=channel.getData("analog",timeout1,maxDigits);
        
                }
            else if(service.equals("2"))
                {
                    System.out.println("digital");
                    String digitalcomp=channel.getData("digital",timeout1,maxDigits);
        
                }
            else if(service.equals("3"))
                {
                    System.out.println("go back to previous menu");
                    streamFile("go back to previous menu");
        
                }
        }
    
    }
}
    
    



Thanks.


User is offlineProfile CardPM
+Quote Post

pbl
RE: Doubt In Loop
13 Jun, 2008 - 09:36 PM
Post #2

D.I.C Lover
Group Icon

Joined: 6 Mar, 2008
Posts: 3,587



Thanked: 233 times
Dream Kudos: 75
My Contributions
Something like:

CODE

do {
     System.out.println("Menu");
     System.out.println("1 - Analog");
     System.out.println("2 - Digital");
     System.out.println("3 - Exit");
     String choice = .....
     if(choice.equals("1") {
        .....
     }
     else if(choice.equals("2") {
        .....
     }
     while(!choice.equals("3");

User is online!Profile CardPM
+Quote Post

nila
RE: Doubt In Loop
15 Jun, 2008 - 10:14 PM
Post #3

D.I.C Head
**

Joined: 5 Jan, 2008
Posts: 128

Thanks.But i have done that using for loop like this.
CODE

import java.sql.*;
import java.lang.String;
import java.text.SimpleDateFormat;
import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;
import org.asteriskjava.fastagi.AgiScript;
import java.util.Date;

public class TestIvr extends BaseAgiScript implements AgiScript

{
Statement st;
ResultSet rs=null;
ResultSet rs1=null;
ResultSet rs2=null;
Connection conn = null;

public void service(AgiRequest request, AgiChannel channel)
            throws AgiException
    {
    String callerid=request.getCallerId();
    System.out.println(callerid);
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");
    String s = formatter.format (new Date());
    System.out.println(callerid);
    answer();

    String file1="welcome";
    streamFile("welcome");
    int timeout=1000;
    int maxDigits=20;
    int timeout1=3000;
char q=waitForDigit(timeout);

//int k=0;
       for(int k=0;k<3;k++)
       {
System.out.println("for complaints press 0,or else hold the line");
String choice=channel.getData("1-for-am-2-for-pm",timeout1,maxDigits);
System.out.println(choice);
    if(choice.equals("0"))
        {


            System.out.println("press 1 for analog,press 2 for digital,3 to go back to previous menu");
            String service=channel.getData("press 1 for analog,press 2 for digital,3 to go back to previous menu",timeout1,maxDigits);
            if(service.equals("1"))
                {
                    System.out.println("analog");
                    String analogcomp=channel.getData("analog",timeout1,maxDigits);
                    break;
        
                }
            else if(service.equals("2"))
                {
                    System.out.println("digital");
                    String digitalcomp=channel.getData("digital",timeout1,maxDigits);
                    break;
        
                }
            else if(service.equals("3")  )
                {
                    System.out.println("go back to previous menu");
                    streamFile("go back to previous menu");
                    
        
                }
            
        }
    

        }
    
    }
}
.
Now what is happening is first i dial a number,it says welcome and ask us to press 0 for complaints.if i press 0 a voice file will tell us to press 1 for analog,2 for digital,3 for previous menu.before this i need to do like this.after saying welcome i need to play a message ("press 1 for english,press 2 for hindi").this should be played 3 times until the condition is satisfied.if the condition is satisfied, the message "for complaints press 0,or else hold the line" should be played.please help me to do this.

Thanks.
User is offlineProfile CardPM
+Quote Post

Fast ReplyReply to this topicStart new topic
Time is now: 1/8/09 10:50PM

Be Social

Dream.In.Code RSS Feed Dream.In.Code LinkedIn Group Follow Us On Twitter

Live Java Help!

Java Tutorials

Reference Sheets

Java Snippets

DIC Chatroom

Bye Bye Ads

Monthly Drawing

Thumb Drive

Top Contributors

Top 10 Kudos This Month