1. поднять астрериск
2. перевести симкарыты в режим работы через мультифон
3. подключить мультифон к астериску
4. на астрериске подключить cdr или cel (логирование звонков) в базу данных.
5. настроить обработку вызова (логирование/сброс/что то еще ) можно даже через freepbx
6. В запросе из БД получаем кто звонил и на какой номер и в какое время.
7. Бинго!
Leaflet ничего не знает о городах. Зато знает о координатах. Очевидно, что вам нужно хранить координаты городов и при движении карты искать те, которые попадают в текущий viewport.
Очень странный подход - Вы стараетесь использовать переменную класса в модуле, лучше расскажите о задаче и попробуем найти нормальное решение.
А вообще как-то так:
module Magick
@@name = "SouthEastGravity"
end
class MagickNameGetter
include Magick
def self.name
@@name
end
end
MagickNameGetter.name