Hallo,
Ik heb de beschikking over een modem die van mijn analoge telefoonlijn de callerid kan halen (nummermelding).
Ik heb een (MFC) applicatie geschreven die het nummer van de beller opzoekt in de cdfoon gids (gedumpt in mysql database) en dat dan in een telefoonklapper zet, de gegevens op het scherm gooit, eventueel een mailtje stuurt dat er iemand belde etc.
Ik denk niet dat er veel mensen zijn met een (voor Nederland) geschikte callerid modem, dus ik heb er nooit over nagedacht het programma beschikbaar te stellen.
Ik vond hier wat c code om hetzelfde met ISDN te doen. Ik ben nu op zoek naar iemand die me wil helpen een ISDN versie te van bovenstaande applicatie te maken. Wat ik daarvoor nodig heb is een c++ class die ongeveer zo werkt:
//
// start isdn watching
//
BOOL CIsdnPort::StartMonitoring()
{
if (!(m_Thread = AfxBeginThread(ISDNThread, this)))
return FALSE;
TRACE(“Thread started\n”);
return TRUE;
}
//
// Suspend the comm thread
//
BOOL CIsdnPort::StopMonitoring()
{
TRACE(“Thread suspended\n”);
m_Thread->SuspendThread();
AfxGetMainWnd()->PostMessage(UWM_THREAD_STOPPED_LISTENING);
return TRUE;
}
CIsdnPort::ISDNThread
{
//Listen to capi
een hoop capi-code
//if ring detected:
AfxGetMainWnd()->PostMessage(UWM_RING_DETECTED);
//if number received:
//
AfxGetMainWnd()->PostMessage(UWM_NUMBER_RECEIVED,var_met_het_nummer);
}
Een beetje gare code, maar vast duidelijk:
een worker threadje, dat als er een nummer is een message post met het nummer.
Als het op die manier werkt hoef ik slechts de seriele poort communicatie class te vervangen door bovenstaande et voila.
Ik hoor het wel als er interesse is om mij hiermee te helpen. Zelf testen zit er door het niet hebben van een ISDN modem helaas niet in.
Robert