[C#, TAPI]

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dames en heren,

Sinds eergisteren bezig met een tool die popups genereert waar informatie van een inkomend telefoongesprek in staat. Hiervoor heb ik een verbinding nodig met de Activa TSP.

Ik heb me nu 2 dagen druk gemaakt met informatie te zoeken over hoe ik dit kan doen, wat de events zijn, hoe het in elkaar steekt en wat ik dien te doen. Nou is het vrij lastig om informatie te vinden waar een goed voorbeeld in staat waar C# een verbinding legt met de TAPI en dan een opgegeven TSP selecteert.

Ik heb de volgende links al geraadpleegd, zelfs gecombineerd, maar nog niet het gewenste resultaat bereikt:
http://www.codeproject.com/KB/IP/devangpro.aspx
Op aanraden van: http://www.dreamincode.net/forums/index.php?showtopic=100858 heb ik de TAPI Wrapper van http://www.julmar.com/blo...ATAPIAssemblyUpdated.aspx getracht te gebruiken. Niet succesvol, ik krijg wel de verbinding maar bij het uitlezen van mijn TSP's krijg ik een out of range exception.

code:
1
System.ArgumentOutOfRangeException was unhandled - Message="Index and count must refer to a location within the buffer.\r\nParameter name: bytes"


C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TapiManager controller = new TapiManager("CallerMAX");
            try
            {
                if (controller.Initialize() && controller.Lines.Length > 0)
                {
                    outputBox.Text = ("I found the following TSP's:...\r\n");
                    TapiLine[] lines = controller.Lines;
                    for (int i = 0; i < 8; i++)
                    {
                        outputBox.Text += i + ". " + lines[i].Name + "\r\n";
                    }
                }
                else
                {
                    outputBox.Text = ("Nothing found!");
                }
            }
            catch (TapiException e)
            {
                Console.WriteLine(e.Message);
            }
            controller.Shutdown();


Dit gebeurt pas bij de 7de TSP, de TSP's hiervoor worden wel gedisplayed...Ik gebruik nu een for statement omdat ik dan op index kan selecteren, wanneer het goed zou worken zou ik eigenlijk een foreach gebruiken.


Anyhow, ik had bedacht om gewoon verder te gaan met TAPI3.0 van windows. Ik probeer hier de TSP's te displayen aan de hand van het script in de bovenstaande link, lukt zelfs dat me niet eens....
code:
1
Cannot convert method group 'EnumerateAddresses' to non-delegate type 'TAPI3Lib.IEnumAddress[]'. Did you intend to invoke the method?


C#:
1
2
3
4
5
6
7
TAPIClass controller = new TAPIClass();
            controller.Initialize();
            IEnumAddress[] lines = controller.EnumerateAddresses;
            foreach (IEnumAddress line in lines)
            {
                outputBox.Text += line;
            }


Mijn vraag:
-Heeft iemand een goed voorbeeld, documentatie, tutorial liggen/gezien/gemaakt waarin staat beschreven wat de juiste methode is voor het omgaan met de tapi?
-Zo niet, heeft iemand ervaring hiermee en is hij of zij bereid mij op de goede weg te helpen ?

Bij voorbaat bedank ik iedereen voor zijn/haar input.
Houdt er rekening mee dat ik een absolute beginneling ben, tis pas mijn 4de week programmeren in C# :)...;)

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Uit de foutmelding:"'Did you intend to invoke the method?"
To invoke is aanroepen in het Nederlands.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
_js_ schreef op vrijdag 19 februari 2010 @ 13:38:
Uit de foutmelding:"'Did you intend to invoke the method?"
To invoke is aanroepen in het Nederlands.
Ik heb
C#:
1
2
3
4
5
6
7
TAPIClass controller = new TAPIClass();
            controller.Initialize();
            IEnumAddress[] lines = controller.EnumerateAddresses;
            foreach (IEnumAddress line in lines)
            {
                outputBox.Text += line;
            }

Gewijzigd in:
C#:
1
2
3
4
5
6
7
TAPIClass controller = new TAPIClass();
            controller.Initialize();
            IEnumAddress[] lines = controller.EnumerateAddresses();
            foreach (IEnumAddress line in lines)
            {
                // code
            }


Maar krijg vervolgens:
code:
1
Cannot implicitly convert type 'TAPI3Lib.IEnumAddress' to 'TAPI3Lib.IEnumAddress[]'
.

Dit was me net opgevallen, beetje beschamend dat ik het niet eerder zag :(

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Wat geeft controller.EnumerateAddresses() terug? Ik denk niet IEnumAddress[].

Klopt: http://social.msdn.micros...ad-4538-8e60-a1cf198d893c

Hier geeft EnumerateAddresses ook maar 1 IEnumAddress terug.

[ Voor 54% gewijzigd door Snake op 19-02-2010 14:14 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Neej geeft iets anders terug, een enumerator object oid. Ik heb mijn code nu omgegooid naar
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TAPIClass controller = new TAPIClass();
            controller.Initialize();
            IEnumAddress addressEnum = controller.EnumerateAddresses();
            ITAddress address;
            uint arg=0;

            addressEnum.Next(1, out address, ref arg);
            int i = 0;
            while (address != null)
            {
                outputBox.Text += i +". "+ address.addressName; 
                addressEnum.Next(1, out address, ref arg);
                i++;
            }

En dat werkt nu!!! En ik zie de juiste TSP in beeld verschijnen, dus nu enkel nog effe zien dat hij die ook selecteerd om mee te werken :D