на C, компактную, простую - выберите любые 2 пункта..
зачем на C если потом скрипты пускать ?, онож весь профит сожрет. Демонов не только на C пишут. Берешь свой любимый П(хп|ерл|итон) пишешь обычную консольную утилевину, проверяешь, пишешь банальный шел скрипт с while 1;...твой скрипт;, запускаешь в bg. вуаля демон и safe скрипт готовы.
ох, если б не туча работы может и взялся бы без исходников =)
Уже есть на время замороженный многопоточный кроссплатформенный демон на с++(qt framework), при запуске посылает coreshowchannels и на основании событий ами ведёт свои данные о наличии каналов их свойств и линках между ними. И клиентам выдаёт уже осмысленные события не о каналах а о звонках типа: звонок с номера на номер идентификатор звонка хххх, идентификатор звонка хххх подняли трубку, идентификатор звонка хххх пложили трубку, изменение callerid. Позволяет выполнять различные команды типа звонок на номер, перехват, перевод, но только в параметрах требует не каналы а экстеншены и при выполнении команд не дёргает лишний раз астериск и так уже знает какие каналы есть их состояние и возможна ли операция. Частично реализована авторизация разным пользователям с разными правами: типа юзер 1 имеет право выполнять команды с номером 111 но слушать события с номеров 100-150. Проще говоря типа аналога фопа 2, рассчитанный на встраивание в различные crm. Только сейчас задача ушла на 2-й план.